ContractFilter不匹配错误

rog*_*awg 2 wcf-binding

我在StackOverflow和其他地方看到了几个关于这个错误的线程但是,我一直无法得到解决我的问题的方法.

我有一个尝试调用Web服务方法的应用程序.当它调用一个方法(提供登录验证)时,它工作得很好.然后,当它调用另一个函数(不是登录/成员资格相关)时,它会生成此错误:

由于EndpointDispatcher上的ContractFilter不匹配,因此无法在接收方处理带有Action'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>
Run Code Online (Sandbox Code Playgroud)

这是Web服务的web.config文件中的相关XML:

<behaviors>
  <serviceBehaviors>
<behavior name="MyAppDataSvc.MyAppDataBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" />
Run Code Online (Sandbox Code Playgroud)

这一切都发生在我的本地机器上.我只是想在客户端应用程序上进行开发.任何人都可以建议我可能尝试发现问题所在.

提前感谢您提出的任何建议.


更新:我做了更多测试.我已将Web服务发布到开发服务器,而不是本地计算机.我仍然得到同样的错误.我已经浏览了应用程序和Web服务的配置文件,我找不到任何问题.我已将新创建的Web服务的web.config文件与先前版本的Web服务的web.config文件进行了比较,但我没有看到任何问题.我将桌面应用程序的app.config文件的相关部分与Web服务的现有客户端的web.config文件进行了比较,但我找不到任何差异.

我已使用Microsoft Service Configuration Editor在桌面应用程序和Web服务上启用了跟踪.当我运行桌面应用程序并抛出错误时,在Web服务的目录或桌面应用程序的目录中都不会创建任何日志文件.

我完全支持这一点.有没有人有什么建议?

谢谢.

rog*_*awg 7

我发现了这个问题.

在客户端应用程序的app.config文件中,端点的地址与configuration.svcinfo中列出的服务地址不匹配.因此,这两个文件指向Web服务的不同实例和不同版本.