有关如何创建WCF silverlight 3端点的问题

时间:2010-01-21 14:08:39

标签: c# asp.net-mvc wcf silverlight

我想使用silverlight应用程序和asp.net mvc应用程序来使用WCF服务,而且我很难配置服务来支持这两个请求。

这些是我的WCF配置文件的端点。

  <service behaviorConfiguration="behaviorAction" name="Uniarchitecture.ProdutoService.ServiceImplementations.ProdutoService">
    <endpoint binding="wsHttpBinding" bindingConfiguration="bindingAction" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService">
      <identity>
        <dns value="localhost"/>
      </identity>
    </endpoint>
    <endpoint address="" binding="basicHttpBinding" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService"/>

    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service> 

我收到以下错误: 绑定实例已与侦听URI“net.tcp:// localhost:10377 / ProdutoService”相关联。如果两个端点想要共享相同的ListenUri,则它们还必须共享相同的绑定对象实例。两个冲突的端点在AddServiceEndpoint()调用,配置文件或AddServiceEndpoint()和config的组合中指定。

2 个答案:

答案 0 :(得分:0)

问题是尝试使用带有两个绑定的两个端点 ...您可以在同一服务上使用多个端点,但是它们需要使用相同的绑定。

由于Silverlight 仅支持BasicHttpBinding ,因此您很难接受它。

<service behaviorConfiguration="behaviorAction" name="Uniarchitecture.ProdutoService.ServiceImplementations.ProdutoService">
    <endpoint binding="**basic**HttpBinding" bindingConfiguration="bindingAction" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService"/>
    <endpoint address="" binding="basicHttpBinding" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService"/>
</service>

答案 1 :(得分:0)

在您的配置中,两个端点的地址是相同的。使用HTTP绑定,您可以为服务创建多个端点,但是您需要为它们指定不同的地址。更改basicHttpBinding端点的地址以解决此问题。