gpt4 book ai didi

wcf-binding - ContractFilter 不匹配错误

转载 作者:行者123 更新时间:2023-12-03 07:44:30 27 4
gpt4 key购买 nike

我在 StackOverflow 和其他地方看到了有关此错误的多个线程,但是我一直无法找到问题的解决方案。

我有一个尝试调用 Web 服务方法的应用程序。当它调用一种方法(提供登录验证)时,它工作得很好。然后,当它调用另一个函数(与登录/成员(member)无关)时,它会生成以下错误:

带有 Action ' http://tempuri.org/IMyAppData/GetSomeSpecialXML 的消息' 由于 EndpointDispatcher 上的 ContractFilter 不匹配,因此无法在接收方进行处理。这可能是因为契约(Contract)不匹配(发送者和接收者之间的操作不匹配)或发送者和接收者之间的绑定(bind)/安全不匹配。检查发送方和接收方是否具有相同的合约和相同的绑定(bind)(包括安全要求,例如消息、传输、无)。

我已经重建并重新发布了 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.config 文件与以前版本的 Web 服务的 web.config 文件进行了比较,没有发现任何问题。我已将桌面应用程序的 app.config 文件的相关部分与现有 Web 服务客户端的 web.config 文件进行了比较,没有发现任何差异。

我已使用 Microsoft 服务配置编辑器在桌面应用程序和 Web 服务上启用跟踪。当我运行桌面应用程序并引发错误时,在 Web 服务的目录或桌面应用程序的目录中都不会创建任何日志文件。

我对此完全处于停滞状态。有人有什么建议吗?

谢谢。

最佳答案

我发现了问题。

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

关于wcf-binding - ContractFilter 不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476837/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com