我想使用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的组合中指定。
答案 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端点的地址以解决此问题。