WCF - 没有端点侦听net.tcp:// myserver:9000 / SearchQueryService / Querier.svc,可以接受该消息。
我在IIS应用程序上启用了net.tcp协议
Windows防火墙已关闭
对于整个IIS应用程序,net.tcp绑定设置为端口9000。
我的web.config很标准:
<system.serviceModel>
<diagnostics>
<messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="false"
logMessagesAtTransportLevel="true" />
</diagnostics>
<services>
<service behaviorConfiguration="SearchQueryServiceBehavior"
name="Search.Querier.WCF.Querier">
<endpoint address="mex" binding="mexHttpBinding" name="mexHttpEndpoint"
contract="IMetadataExchange" />
<endpoint binding="netTcpBinding" bindingConfiguration=""
name="netTcpEndpoint"
contract="Search.Querier.WCF.IQuerier" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SearchQueryServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
这个设置适用于一台服务器,但不适用于其他服务器...... 可能是什么问题呢?
两台服务器,工作和非工作服务器都运行IIS7。 唯一的区别是工作盒是Vista64 Sp2,而非工作盒是W2k864。
答案 0 :(得分:4)
我认为您在网站的高级设置中的“启用协议”列表中缺少net.tcp。
答案 1 :(得分:0)
你在w2k864机器上安装了.net 3.5吗?安装后,你运行了aspnet_iisreg吗?
检查IIS中的asp.net设置并确保将其设置为使用2.0
您能提供更多信息吗?
还尝试使用您的IP而不是主机名。例如192.168.1.100而不是myserver
答案 2 :(得分:0)
当您浏览服务(http://myserver/SearchQueryService/Querier.svc)时,是否收到任何错误消息?
我还注意到您的客户端正在端口9000上调用net.tcp端点。此配置是否与IIS net.tcp配置匹配?在默认配置中,应该将对服务的调用指向net.tcp://myserver/SearchQueryService/Querier.svc
答案 3 :(得分:0)
可能有另一个应用程序配置为在同一端口上侦听,您也可以在此处看到此内容-https://stackoverflow.com/a/7254861/4446128,如果是这种情况,则同一端口上的两个应用程序都可能不在同一端口上加工。我希望这种情况发生时会出现更好的错误消息,因为这使我花了很长时间才弄清楚(我不得不处理许多通过net.tcp进行通信的应用程序),我希望此信息对仍在处理WCF的任何人有所帮助。