我有以下 WCF 端点配置:
<service behaviorConfiguration="MyNamespace.ContainerManagementServiceBehavior"
name="MyNamespace.ContainerManagementService">
<endpoint address="" binding="basicHttpBinding"
name="ContainerManagementbasicHttpEndpoint" contract="MyNamespace.IContainer"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<behaviors>
<behavior name="MyNamespace.ContainerManagementServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</behaviors>
这是我的客户端配置:
<client>
<endpoint address="http://localhost:3227/Services/ContainerManagementService.svc"
binding="basicHttpBinding"
contract="MyNamespace2.IAQSIDMService" name="externalService" />
</client>
我正在动态进行 Web 服务调用,提供不同的地址:
var svc = new AQSIDMServiceClient(Constants.External_Service_ConfigurationName, serviceAddress);
当我调用端点时,我收到以下错误消息:
{“由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action 'http://IMyService/CreateContainer' 的消息。这可能是由于合约不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之间的绑定/安全不匹配。检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息、传输、无)。"}
这可能是因为我的客户端没有与端点相同的 serviceBehavior 吗?还有什么我可以错过的吗?
谢谢!