Protocol "net.tcp" is not supported

My WCFservice gives me "Protocol" net.tcp "is not supported" ...

<system.serviceModel> <bindings> <netTcpBinding> <binding name="tcpBinding" transferMode="Streamed" portSharingEnabled="false"> <reliableSession enabled="true" /> <security mode="None"> <transport clientCredentialType="None" protectionLevel="None" /> <message clientCredentialType="None" /> </security> </binding> </netTcpBinding> </bindings> <services> <service name="JMSysSplash.CommunicationServer.JMSysSplashServer" behaviorConfiguration="Service1Behavior"> <endpoint address="" binding="wsHttpBinding" contract="JMSysSplash.CommunicationClient.IJMSysSplashServer"> <identity> <dns value="localhost"/> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> <endpoint address="net.tcp://localhost:8888/JMSysSplashServer" binding="netTcpBinding" bindingConfiguration="tcpBinding" contract="JMSysSplash.CommunicationClient.IJMSysSplashServer"/> <host> <baseAddresses> <add baseAddress="http://localhost:8731/JMSysSplashServer.svc/"/> <add baseAddress="net.tcp://localhost:8888/JMSysSplashServer"/> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior name="Service1Behavior"> <serviceMetadata httpGetEnabled="true"/> <serviceDebug includeExceptionDetailInFaults="true"/> </behavior> </serviceBehaviors> </behaviors> 
+6
wcf wcf-binding
source share
4 answers

Make sure that the โ€œ.NET Features โ†’ WCF Activation Function โ†’ Not HTTPโ€ function is installed (โ€œServer Manager โ†’ Add / Remove Functionsโ€). And I assume that you host the service in IIS. In this case, please also check if the net.tcp protocol is enabled for the website (website โ†’ Advanced settings โ†’ Enabled protocols) and the Windows Net.Tcp Listner Adapter service is running.

+10
source share

You do not mention who is the boss. If you use IISExpress for hosting, please note that it does not support net.tcp. From http://www.iis.net/learn/extensions/introduction-to-iis-express/iis-express-faq :
Q: Are WCF applications supported?

A: Yes, IIS Express supports WCF applications. As noted above, WCF is only supported through HTTP or HTTPS. WCF over MSMQ and net.tcp is not supported.

+2
source share

I know this is old and answered, but I ran into a similar problem with a different resolution.

Despite the fact that Daniel was right, the absence of such an installation would cause the same error as my problem, it was slightly different, and this answer was given for others.

Issue No. 1 In IIS, on the website where your application is located, right-click and select "Change Bindings".

Make sure net.tcp is present as one of the bindings with the binding information set to "808: *".

Issue No. 2 In the node application in IIS, go to "Advanced Settings" and check if net.tcp is enabled in the list of allowed protocols. for example, "http, net.tcp" will work if you need to support both of the latest protocols.

Hope this helps.

+1
source share

You do not have a base address for nettcp โ€” or you need to determine the full netTCP address at the endpoint. The current netTcp endpoint is as follows:

  <endpoint address="" binding="netTcpBinding" 

You do not specify the full address โ†’ WCF is looking for the base address to use net.tcp - but it isnโ€™t!

Solution 1 : add baseAddress for netTcp:

 <services> <service name="JMSysSplash.CommunicationServer.JMSysSplashServer" behaviorConfiguration="Service1Behavior"> ..... <host> <baseAddresses> <add baseAddress="http://localhost:8731/JMSysSplashServer.svc/"/> <add baseAddress="net.tcp://localhost:8888/JMSysSplashServer"/> </baseAddresses> </host> </service> </services> 

Now your net.tcp endpoint can be reached at net.tcp://localhost:8888/JMSysSplashServer

Solution 2 : provide the full address at the net.Tcp endpoint:

 <services> <service name="JMSysSplash.CommunicationServer.JMSysSplashServer" behaviorConfiguration="Service1Behavior"> <endpoint address="" binding="wsHttpBinding" contract="JMSysSplash.CommunicationClient.IJMSysSplashServer"> <identity> <dns value="localhost"/> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> <endpoint address="net.tcp://localhost:8888/JMSysSplashServer" binding="netTcpBinding" bindingConfiguration="tcpBinding" contract="JMSysSplash.CommunicationClient.IJMSysSplashServer"/> ....... </service> </services> 

When you define an endpoint, you

  • or specify the full address (with net.tcp and port number and all)

OR

  • you specify a relative address (for example, address="" ), but in this case you must have a base address for this scheme (here: net.tcp ) - not just the base address http
0
source share

All Articles