无法配置Silverlight客户端使用的WCF服务

时间:2011-05-17 11:48:16

标签: wcf silverlight-4.0

我正在努力开发一个由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配置的帖子跟着他们什么都没发生

感谢阅读。

1 个答案:

答案 0 :(得分:0)

您正尝试通过HTTP托管clientaccesspolicy.xml文件,并在相同的端口号上使用net.tcp,但这不起作用。虽然这两个协议都建立在TCP / IP上,但它们是不兼容的。

据我了解(另见this article),端口943仍然用于此类事情。