我在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服务的目录或桌面应用程序的目录中都不会创建日志文件。
我完全停留在此。有没有人有什么建议?
谢谢。