我正在尝试让我的WCF服务与netTcpBinding
而不是wsHttpBinding
一起使用,但我似乎无法使其正常运行。
我将net.tcp
绑定添加到IIS7.5,但状态为未知(,当我还删除http绑定时,它会在网站上放置一个大的红色X,我必须添加一个新的http在我可以再次访问任何设置之前绑定)。我已经看过这里和谷歌,但我只能在没有任何真正解决方案的情况下找到关于这个问题的两三篇帖子。
我有什么:
似乎有一个TCP侦听器正在运行,因为它在netstat中显示它正在侦听我指定的端口:809)并且我还有防火墙消息(也尝试禁用防火墙/防病毒,但它没有'帮助)。
WCF测试客户端导致此错误:
错误:无法从net.tcp获取元数据:// localhost:809 / MyService.svc
我的Web.config(主要是从MSDN复制,为了正确的布局,请查看http://pastebin.com/Ru8p0T9N):
<services>
<service behaviorConfiguration="MyBehavior" name="WCFService.MyService">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="Binding1" name="MyServiceEndpoint" contract="WCFService.MyService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" name="MyServiceMexTcpBidingEndpoint" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:809/MyService.svc" />
</baseAddresses>
</host>
</service>
</services>
<behavior name="MyBehavior">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<netTcpBinding>
<binding name="Binding1"hostNameComparisonMode="StrongWildcard"sendTimeout="00:10:00"maxReceivedMessageSize="65536"transferMode="Buffered"portSharingEnabled="true">
<security mode="Message">
<transport clientCredentialType="None" />
<message clientCredentialType="None" />
</security>
</binding>
</netTcpBinding>
wsHttpBinding
一切正常,但net.tcp
没有。我从多个来源尝试了Web.config中的几个不同的设置,但我一直遇到同样的问题。
答案 0 :(得分:1)
您是否在IIS中添加了net.tcp作为启用协议?管理网站=&gt;高级设置=&gt;启用协议(逗号分隔)
答案 1 :(得分:0)
对于遇到同样问题的人:正如我之前所说的,我将应用程序池更改为Classic并且它不起作用(http也不再起作用),但当我将其更改回来并重新启动应用程序池时工作