In a 2011 to 2013 upgraded environment, I'm getting the following error when updating preview on certain pages (and then performing any actions in the CME. TcmServiceHost
also stops.
Could not connect to net.tcp://localhost:2660/CoreService/2012/netTcp. The connection attempt lasted for a time span of 00:00:02. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:2660.
Update 1: Browser console shows as issue with GetPreviewToken.
POST http://cms.electridion.com/WebUI/Models/SiteEdit/Services/Services.svc/GetPreviewToken 500 (Internal Server Error)
coreresource_v7.0.0.568.5_.js?sav=1&cnt=core:18 Tridion.Sys.Net.WebRequest.execute coreresource_v7.0.0.568.5_.js?sav=1&cnt=core:18 $communicator.invokeAggregated coreresource_v7.0.0.568.5_.js?sav=1&cnt=core:196
Restarting the service fixes the issue until the next preview.
I understand we configure NetTcp, which the CME uses, in %TRIDION_HOME%\TcmServiceHost.exe.config
which has (updated to show the SDL Tridion 2013 endpoint):
<services>
<service behaviorConfiguration="Tridion.ContentManager.ServiceHost.WindowsServiceHost.CoreServiceBehavior" name="Tridion.ContentManager.CoreService.CoreService2011">
<endpoint name="netTcp" address="netTcp" binding="netTcpBinding" bindingConfiguration="CoreService_netTcpBinding" bindingNamespace="http://www.sdltridion.com/ContentManager/CoreService/2011" contract="Tridion.ContentManager.CoreService.ISessionAwareCoreService2011"/>
<endpoint name="streamDownload_netTcp" address="streamDownload_netTcp" binding="netTcpBinding" bindingConfiguration="StreamDownload_netTcpBinding" bindingNamespace="http://www.sdltridion.com/ContentManager/CoreService/2011" contract="Tridion.ContentManager.CoreService.IStreamDownload2011"/>
<endpoint name="streamUpload_netTcp" address="streamUpload_netTcp" binding="netTcpBinding" bindingConfiguration="StreamUpload_netTcpBinding" bindingNamespace="http://www.sdltridion.com/ContentManager/CoreService/2011" contract="Tridion.ContentManager.CoreService.IStreamUpload2011"/>
<endpoint name="mex" address="mex" binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:2660/CoreService/2011"/>
</baseAddresses>
</host>
</service>
<service behaviorConfiguration="Tridion.ContentManager.ServiceHost.WindowsServiceHost.CoreServiceBehavior" name="Tridion.ContentManager.CoreService.CoreService2012">
<endpoint name="netTcp" address="netTcp" binding="netTcpBinding" bindingConfiguration="CoreService_netTcpBinding" bindingNamespace="http://www.sdltridion.com/ContentManager/CoreService/2012" contract="Tridion.ContentManager.CoreService.ISessionAwareCoreService2012"/>
<endpoint name="streamDownload_netTcp" address="streamDownload_netTcp" binding="netTcpBinding" bindingConfiguration="StreamDownload_netTcpBinding" bindingNamespace="http://www.sdltridion.com/ContentManager/CoreService/2012" contract="Tridion.ContentManager.CoreService.IStreamDownload2012"/>
<endpoint name="streamUpload_netTcp" address="streamUpload_netTcp" binding="netTcpBinding" bindingConfiguration="StreamUpload_netTcpBinding" bindingNamespace="http://www.sdltridion.com/ContentManager/CoreService/2012" contract="Tridion.ContentManager.CoreService.IStreamUpload2012"/>
<endpoint name="batch_netTcp" address="batch_netTcp" binding="netTcpBinding" bindingConfiguration="CoreService_netTcpBinding" bindingNamespace="http://www.sdltridion.com/ContentManager/CoreService/2012" contract="Tridion.ContentManager.CoreService.ICoreServiceBatch2012"/>
<!-- We use TcmServiceHost.exe as source for WSDL-extraction for the T.CM.CoreService.Client. We need an endpoint for the ICoreService2012 contract, otherwise it's not included in the WSDL/proxy. -->
<endpoint name="dummy" address="dummy" binding="netTcpBinding" bindingConfiguration="CoreService_netTcpBinding" bindingNamespace="http://www.sdltridion.com/ContentManager/CoreService/2012" contract="Tridion.ContentManager.CoreService.ICoreService2012"/>
<endpoint name="mex" address="mex" binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange"/>
<!--
<endpoint name="netFederationTcp" address="netFederationTcp" binding="customBinding" bindingConfiguration="CoreService_netFederationTcpBinding" bindingNamespace="http://www.sdltridion.com/ContentManager/CoreService/2012" contract="Tridion.ContentManager.CoreService.ISessionAwareCoreService2012" />
<endpoint name="batch_netFederationTcp" address="batch_netFederationTcp" binding="customBinding" bindingConfiguration="CoreService_netFederationTcpBinding" bindingNamespace="http://www.sdltridion.com/ContentManager/CoreService/2012" contract="Tridion.ContentManager.CoreService.ICoreServiceBatch2012" />
-->
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:2660/CoreService/2012"/>
</baseAddresses>
</host>
</service>
<service behaviorConfiguration="Tridion.ContentManager.ServiceHost.WindowsServiceHost.CoreServiceBehavior" name="Tridion.ContentManager.Publishing.PreviewService.FastTrackPublishingService">
<endpoint name="netTcp" address="netTcp" binding="netTcpBinding" bindingConfiguration="CoreService_netTcpBinding" bindingNamespace="http://www.sdltridion.com/SiteEdit/FastTrackPublishing" contract="Tridion.ContentManager.Publishing.PreviewService.IFastTrackPublishingService"/>
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:2660/FastTrackPublishingService"/>
</baseAddresses>
</host>
</service>
IIS has the CMS with bindings set to http
for host cms.domainname.com
on Port 80.
Update and here's the partial browser error.
System.ServiceModel.EndpointNotFoundException: Could not connect to net.tcp://localhost:2660/CoreService/2012/netTcp. The connection attempt lasted for a time span of 00:00:02.0007991. TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:2660. ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:2660
Questions:
- Do I need to set anything for the port 2660 (firewall, IIS, etc?) for the CME itself running on the same machine?
- Does the net.tcp://localhost need to match the CME url?
- Should TcmServiceHost.exe continue to run (it's set to "Automatic" so I'm not sure if that means stopping is a problem) or thoughts on what can stop it?
In terms of error logs, I do see Audience Manager complaining about the same issues but nothing much in Staging's core log. Where else should I check?
Update 2: I think a bad template caused the service to stop--it called RenderComponentPresentation on itself. I could see the template stall in Template Builder and Windows created fairly large crash reports (folders starting with AppCrash_TcmTemplateDebug_
) in C:\ProgramData\Microsoft\Windows\WER\ReportQueue
.