2011-03-30 80 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首先回應這些查詢,我們應該能夠看到請求失敗。您還應該啓用服務跟蹤並查看發出了哪些錯誤/警告級別跟蹤。這也應該可以幫助您診斷問題。

相關問題