2012-05-07 24 views
11

Podczas publikowania/renderowania określonego fragmentu kodu w Compound Templating pojawił się nagły problem w jednym ze środowisk. Jest to środowisko DTAP, a problem dzieje się tylko w środowisku produkcyjnym (jak zawsze ;-), gdzie jest dwóch maszyn CMS i dwóch wydawców. Wszystkie wykazują takie samo zachowanie.Problem podczas renderowania przy użyciu języka C# w szablonie złożonym

Kod, który powoduje problem jest:

StructureGroup SG = (StructureGroup)engine.GetObject("/webdav/pub/root/etc/etc..."); 

Błąd w budowniczego szablon jest:

System.Net.WebException: The underlying connection was closed: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.77.66.136:80 
    bij System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 
    bij System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) 
    bij System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) 
    --- Einde van intern uitzonderingsstackpad --- 
    bij System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) 
    bij System.Net.HttpWebRequest.GetRequestStream() 
    bij System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 
    bij Tridion.ContentManager.Templating.CompoundTemplates.DomainModel.Proxy.CompoundTemplateWebService.GetDebuggingState(String debuggerSessionId, String lastLogMessageId) 
    bij Tridion.ContentManager.Templating.CompoundTemplates.DomainModel.DebugObject.Start(Template template, Object debugItem, LoggingOptions loggingOptions) 

Co jest dziwne, że tak naprawdę nie próbuje dostać się do zewnętrznego serwera. Przynajmniej tak to wygląda. Może brakuje mi czegoś, jak działa Tridion. Jestem prawie pewien, że to kwestia bezpieczeństwa, ale nie wiem, gdzie szukać.

+2

Wygląda na to, że masz swój adres IP w śledzeniu stosu. Ping to i dowiedz się, jaki serwer w Twojej architekturze jest. –

+0

Czy możesz określić swoją wersję SDL Tridion? –

+2

Podejrzewam, że Twój błąd dotyczy Konstruktora szablonów? TOM.NET NIE otworzy nigdzie połączenia zdalnego, a Twój błąd dotyczy komunikacji sieciowej ... Czy możesz spróbować wyświetlić podgląd lub opublikować w CMS? –

Odpowiedz

5

Wyjaśniłem problem błędu przy pomocy porady Nicoli i Nuno.

Ten błąd jest wyświetlany, gdy Konstruktor szablonów próbuje uruchomić z lokalizacji w sieci, która nie ma dostępu do kodu. Myślałem, że jest to związane z metodą engine.GetObject, ponieważ błąd pojawiłby się tylko wtedy, gdy ta metoda była uruchomiona.

Wystąpił również błąd w kodzie, ale miało to związek z nieprawidłową metodą rekurencyjną.