我正在努力开发一个由Silverlight客户端使用的双工wcf服务。现在为了冒险,我决定使用 nettcpbinding 。我知道在端口943上运行的PolicyServer的概念现在已经过时,它应该从服务的根目录提供。
给出以下是服务的配置部分
<behaviors>
<serviceBehaviors>
<behavior name="WcfServer.WcfServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="CrossDomainServiceBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="WcfServer.WcfServiceBehavior"
name="WcfServer.MainService">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="TCPBinding" contract="WCFWebFrontCommunication.IMainService">
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
<endpoint address="" binding="webHttpBinding" behaviorConfiguration="CrossDomainServiceBehavior" contract="WCFWebFrontCommunication.IClientAccessPolicy" />
<host>
<baseAddresses>
<!--<add baseAddress= "http://192.168.0.101:943/WcfServer/MainService" />-->
<!--<add baseAddress= "http://localhost:943/WcfServer/MainService" />-->
<add baseAddress= "net.tcp://localhost:4502/WcfServer/MainService" />
<add baseAddress="http://localhost:4502"/>
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
现在在运行时我得到一个异常 HTTP无法注册URL http://+:4502/,因为另一个应用程序正在使用TCP端口4502 。何时调用Open Method。
我在这里做些傻事......虽然http例外也有basicHttpBinding吗
作为故障排除: 使用 Netstat -aon 检查开放端口 有一些关于HTTP配置的帖子跟着他们什么都没发生
感谢阅读。
答案 0 :(得分:0)
您正尝试通过HTTP托管clientaccesspolicy.xml文件,并在相同的端口号上使用net.tcp,但这不起作用。虽然这两个协议都建立在TCP / IP上,但它们是不兼容的。
据我了解(另见this article),端口943仍然用于此类事情。