2012-08-08 54 views
1

我有這個錯誤。我知道問題在哪裏,但我無法解決它。 我有WCF Web服務正在工作。 我需要與第一個Web服務相同的seckond Web服務,但它有不同的名稱空間。 localhost/test1.svc localhost/test2.svc 我不想添加web referance,所以我在test1.svc上使用了wsdl.exe?wsdl 現在我想用那個類test2.svc調用,但我正在創建這個錯誤。
在EndpointDispatcher ContractFilter不匹配,我發現thisContractFilter不匹配在EndpointDispatcher

,但我不舒爾如何使用它。或者是有任何其他方式dinamicli添加Web服務網址。

回答

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"); 

並使用它以正常方式創建您的頻道。

通過更改端點名稱,您可以在適當的時間選擇使用哪一個。