5

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:

  1. Do I need to set anything for the port 2660 (firewall, IIS, etc?) for the CME itself running on the same machine?
  2. Does the net.tcp://localhost need to match the CME url?
  3. 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.

2 Answers 2

6

I think your configuration file is missing the 2013 endpoints in the TcmServiceHost.exe.config.

<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>
3
  • Nice catch based on my original question (which just showed the older baseAddress. I added more of the config to the question and this seems to match--the environment does has both 2013 ("2012") and 2011 endpoints. I'll check for other settings and report back. Commented Jul 31, 2013 at 16:23
  • Hi Alvin,Could you please update your answer if at all you find a fix for this issue.Currently we face the same scenario with the same error.
    – Sam
    Commented Feb 18, 2014 at 11:29
  • Hi all, could you give more details about the solution please ? I believe we have the same kind of issue on one of our servers. Commented Aug 26, 2016 at 19:43
-2

I think the net.tcpListenerAdapter(Start->Service ) is not started in Server machine

1
  • user3164298 welcome to the community and thanks for the answer. I traced my specific issue to either a memory leak or maybe space (bad template). Could that impact net.tcpListenerAdapter, making it stop? Or how is TcmServiceHost.exe related to net.tcpListenerAdapter? Adding those to your answer could give context and why is might be that which can increase votes for your answer. Commented May 31, 2015 at 5:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.