none
WCF Net.Tcp Binding Server 2012 NetTcpActivator RRS feed

  • Question

  • I changed the osfamily setting in theServiceConfiguration.Cloud.cscfg from 2 to 3 yesterday. Basically changing the server from Windows Server 2008 R2 to Windows Server 2012, and i was suddenly unable to connect to my wcf service using net.tcp binding. I remoted into the machine and noticed that the Net.Tcp Listener Adapter (NetTcpActivator) service was missing. So I went to turn Windows features on and need to enable the Tcp Activation feature under Wcf Services which is Under .Net Framework 4.5 Features. Once I installed this the Net.Tcp Listener Adapter is now listed in the Services and I am able to connect again. Which leads me to believe that this must be installed by default on the Server 2008 image and not the Server 2012 image. Should this be installed by default on the server 2012 image? and also I won't be able to remote in and install this everytime i spin up an instance so am i using the wrong image, or should I be Installing Windows features as a startup task or something? Any help would be greatly appreciated. Thank you. 
    Monday, September 16, 2013 5:19 AM

All replies

  • Hi,

    We can use startup task to let the NetTcpActivator enabled, In this way we not need to care whether this service is disabled/enabled.

    Best Regards

    Tuesday, September 17, 2013 2:41 AM
  • Hi LWStanton,

    The WCF services use the listener adapter interface to communicate the activation requests to the proper listener service, Net.Tcp Listener Adapter (NetTcpActivator) receives activation requests over the net.tcp protocol and passes them to the Windows Process Activation Service.

    We could create a PowerShell script that executes these operations and create a startup task to start the script as soon as the web roles instance starts, and not to care whether the service is enabled/disabled. However, the operations defined in a startup task execute before Windows Azure Fabric has finished configuring IIS. Therefore, it cannot configure bindings for a web site or enable protocols for a web application. Conversely, the OnStart method of the WebRole class executes after IIS has been set up by the Windows Azure Fabric. Therefore, we can run scripts that make the required configuration changes to the system. Refer to (http://msdn.microsoft.com/en-us/library/windowsazure/hh881877.aspx ) for more information.

    Hope this helps


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    Tuesday, September 17, 2013 7:12 AM
    Moderator
  • Mr Jambor,

    I already have configured the OnStart Method to Start the Net Tcp Listener Adapter, and have the WebRole exposing an internal Tcp Endpoint. That is why it is working correctly in Windows Server 2008. That is not at all what my question was. You can not configure the NetTcpActivator service to start if the service it self is not even enabled. You first have to go into the add/remove features of windows and enable the feature. Also you only have to do this on Server 2012 not on Server 2008. So basically this is more of an alert to the people working on the different Azure WebRole Images that they have discrepencies in what Wcf features they have enabled between Server 2008 and Server 2012.

    Thank you.

    Tuesday, September 24, 2013 7:19 PM
  • There's also a PowerShell command that allows you to install a Windows feature: http://technet.microsoft.com/en-us/library/jj205467.aspx.

    Friday, September 27, 2013 10:56 AM