【发布时间】:2011-12-27 13:26:10
【问题描述】:
我试图将我的 Web 应用程序与两个 WCF 服务集成,这些服务具有相同的服务合同名称,但位于两个不同的地址。问题是我想在一个 DLL 中为这两种服务创建代理,但这是不可行的,因为两个合同都具有相同的名称,我尝试使用嵌套命名空间,它也不起作用,因为代理托管在除了 web 项目之外的单独 DLL,我更改了一个服务合同的名称,但出现此错误:
带有动作的消息 'http://ws.aramex.net/ShippingAPI/v1/RateCalculateService/CalculateRate' 由于 ContractFilter 不匹配,无法在接收方处理 在 EndpointDispatcher。这可能是因为合同 mismatch(发送方和接收方之间的操作不匹配)或 发送方和接收方之间的绑定/安全不匹配。查看 发送者和接收者具有相同的合同和相同的绑定 (包括安全要求,例如消息、传输、无)。
客户端的合约名称是否可能与服务器端的合约名称不同?
端点:
<client>
<endpoint address="http://ws.dev.aramex.net/shippingapi/shipping/service_1_0.svc"
binding="basicHttpBinding" bindingConfiguration="basic"
contract="Service_1_0" name="BasicHttpBinding_Service_1_0" />
<endpoint address="http://ws.aramex.net/shippingapi/ratecalculator/service_1_0.svc"
binding="basicHttpBinding" bindingConfiguration="basic"
contract="RateCalculateService" name="BasicHttpBinding_Service_1_0" />
</client>
第二个端点的原始合约名称是“Service_1_0”
【问题讨论】:
标签: wcf wcf-client