2012-05-07 1 views
11

Внезапная проблема появилась в одной из сред при публикации/рендеринге определенного фрагмента кода в Compound Templating. Это среда DTAP, и проблема возникает только в производственной среде (как всегда ;-), где есть две машины CMS и два издателя. Все показывают одинаковое поведение.Проблема при рендеринге с использованием C# в Compound Templating

Код, который вызывает проблемы является:

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

Ошибка в шаблоне строитель:

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) 

Что странно, что мы на самом деле не пытаются получить на внешний сервер. По крайней мере, так оно и есть. Возможно, мне что-то не хватает в том, как работает Tridion. Я вполне уверен, что это проблема безопасности, но я не знаю, где искать.

+2

Похоже, у вас есть IP-адрес в трассировке стека. Ping его, и узнать, какой сервер в вашей архитектуре. –

+0

Можете ли вы указать свою версию SDL Tridion? –

+2

Я подозреваю, что ваша ошибка в шаблоне-строителе? TOM.NET НЕ будет открывать удаленное соединение в любом месте, а ваша ошибка связана с сетевой связью ... Можете ли вы попробовать просмотреть или опубликовать в CMS? –

ответ

5

Я выяснил проблему ошибки с помощью рекомендаций Николи и Нуно.

Эта ошибка показана при попытке запуска Template Builder из местоположения в сети, которая не имеет доступа к коду. Я думал, что это связано с методом engine.GetObject, потому что ошибка появлялась только при запуске этого метода.

В конце также была ошибка в коде, но это было связано с неправильным рекурсивным методом.