2011-03-30 46 views
0

我有以下WCF端点配置: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作为终点?有没有别的东西,我可能会缺失?

谢谢!

回答

0

的异常告诉你什么是错的。你使用上的要求两侧的同一合同?是绑定和安全相同吗?

如果你c首先回应这些查询,我们应该能够看到请求失败。您还应该启用服务跟踪并查看发出了哪些错误/警告级别跟踪。这也应该可以帮助您诊断问题。

相关问题