对此已有很多问题,但在其他情况下,人们似乎试图有多个终点。在我的情况下,我只有一个,只需要一个端点。仅当我启用证书传输安全性并且仅在我的开发计算机上时才会出现此错误。
我通过MVC中的ServiceRoute实现了WCF服务:
RouteTable.Routes.Add(new ServiceRoute("MyServices", new WebServiceHostFactory(), typeof(MyServices)));
整个serviceModel仅包含:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true">
<!--<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>-->
</standardEndpoint>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
当运输安全性被注释掉时,它可以正常工作。取消注释传输安全性会导致:
A binding instance has already been associated to listen URI 'https://my.dev.machine.local/MyServices'. If two endpoints want to share the same ListenUri, they must also share the same binding object instance. The two conflicting endpoints were either specified in AddServiceEndpoint() calls, in a config file, or a combination of AddServiceEndpoint() and config.
我可以将代码放在不同的环境中,并按预期工作。 WTF?!?
答案 0 :(得分:1)
这是Visual Studio 2012 RC中的一个错误。即使我使用安装了VS 2012 RC的VS 2010也导致了这个问题。一旦我卸载它,这个问题就解决了。只需确保按照2012年的特定卸载说明进行操作,因为如果使用“控制面板”中的“卸载程序”选项将其卸载,则会破坏VS 2010 ...我学到了很多困难。