ContractFilter在EndpointDispatcher上不匹配

时间:2012-08-08 19:16:02

标签: c# asp.net wcf

我有这个错误。我知道哪里有问题,但我不能解决它。 我有WCF Web服务正在运行。 我需要与第一个Web服务相同的seckond Web服务,但它具有不同的命名空间。 本地主机/ test1.svc 本地主机/ test2.svc 我不想添加web referance所以我在test1.svc?wsdl上使用了wsdl.exe 现在我想用那个类test2.svc调用,但是我正在解决这个错误 ContractFilter在EndpointDispatcher上不匹配 我找到了this

但我不知道如何使用它。或者有任何其他方式dinamicli添加Web服务URL。

1 个答案:

答案 0 :(得分:1)

在使用服务时,您需要为服务定义两个不同的端点:

例如

      <endpoint address="address1"
    binding="basicHttpBinding" bindingConfiguration="test1config" contract="service.icontract"
    name="test1endpoint" />
      <endpoint address="address2"
    binding="basicHttpBinding" bindingConfiguration="test2config" contract="service.icontract"
    name="test2endpoint" />

然后,您可以在代码中指定要使用的端点,如下所示:

var channelFactory = new ChannelFactory<IContract>("your-endpoint-name-here");

并使用它以正常方式创建频道。

通过更改端点名称,您可以选择在合适的时间使用哪一个。