我在StackOverflow和其他地方看到了關於這個錯誤的幾個線程,但是,我一直無法得到我的問題的解決方案。ContractFilter不匹配錯誤
我有一個應用程序試圖調用Web服務方法。當它調用一個方法(提供登錄驗證)時,它工作得很好。然後,當它調用另一個函數(不是登錄/成員關係)時,它會生成此錯誤:
由於EndpointDispatcher中的ContractFilter不匹配,無法在接收方處理具有操作'http://tempuri.org/IMyAppData/GetSomeSpecialXML'的消息。這可能是因爲合同不匹配(發件人和收件人之間的操作不匹配)或發件人和收件人之間的綁定/安全性不匹配。檢查發送方和接收方是否有相同的合同和相同的綁定(包括安全要求,例如消息,傳輸,無)。
我重建並重新發布了Web服務,然後從客戶端應用程序中刪除了服務引用並重新創建它們。我仍然得到錯誤。下面是從客戶端應用程序的app.config文件相關的XML:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IMyAppData" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://legolas.vectorcsp.home/MyAppSyncService/MyAppData.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyAppData"
contract="MyAppData.IMyAppData" name="BasicHttpBinding_IMyAppData" />
</client>
</system.serviceModel>
,這裏是從Web服務的web.config文件中有關XML:
<behaviors>
<serviceBehaviors>
<behavior name="MyAppDataSvc.MyAppDataBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" />
這一切都發生在我的本地機器上。我只是試圖在客戶端應用程序上進行開發。任何人都可以建議我可以嘗試發現問題所在。
在此先感謝您提供的任何建議。
更新:我做了更多的測試。我已將Web服務發佈到開發服務器,而不是本地計算機。我仍然得到同樣的錯誤。我已經通過應用程序和Web服務的配置文件,我找不到任何問題。我將新創建的Web服務的web.config文件與先前版本的Web服務的web.config文件進行了比較,但沒有看到任何問題。我已將桌面應用程序的app.config文件的相關部分與Web服務的現有客戶端的web.config文件進行了比較,但我無法找到任何差異。
我已經使用Microsoft Service Configuration Editor在桌面應用程序和Web服務上啓用了跟蹤。當我運行桌面應用程序並引發錯誤時,Web服務的目錄或桌面應用程序的目錄中都不會創建日誌文件。
我完全停留在此。有沒有人有什麼建議?
謝謝。