SOAP 请求因 MEX 绑定而失败
Posted
技术标签:
【中文标题】SOAP 请求因 MEX 绑定而失败【英文标题】:SOAP requests fail with MEX Binding 【发布时间】:2014-05-08 11:10:44 【问题描述】:我对某些服务有一个奇怪的问题。我不是开发人员,我是系统管理员。
我们有一些 SOAP 服务在开发环境中运行。一些 SOAP 服务开始失败。这是一个例子。这些都来自相同的网络配置。
<endpoint address="http://<URL>/<folder>/service.svc"
binding="wsHttpBinding"
bindingConfiguration="wsHttpBinding"
contract="eConsentSvc.IeConsent"
name="WSHttpBinding_IeConsent" />
这个没有:
<endpoint address="http://<URL>/<folder>/service.svc/mex"
binding="wsHttpBinding"
bindingConfiguration="wsHttpBindingText"
contract="MetaDataSvc.IMetaData"
name="WSHttpBinding_IMetaData">
</endpoint>
第二个引发 404 错误。产生的错误是这样的:
在 http:////service.svc/mex 上没有可以接受消息的端点侦听。
明显的区别是“/mex”。开发人员坚持认为它必须在那里,所以它必须在那里。为什么它会在 MEX 那里抛出 404 错误?
如果我删除 /mex,则服务会运行并生成它应该创建的 XML 文档。
请帮忙。我完全被难住了。
【问题讨论】:
【参考方案1】:在这个端点不能指定binding="wsHttpBinding"
它必须是 mex*
绑定之一,例如:mexHttpBinding
。
另一种方法是简单地添加另一个端点<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<endpoint address="http://<URL>/<folder>/service.svc/mex"
binding="wsHttpBinding"
bindingConfiguration="wsHttpBindingText"
contract="MetaDataSvc.IMetaData"
name="WSHttpBinding_IMetaData">
</endpoint>
【讨论】:
以上是关于SOAP 请求因 MEX 绑定而失败的主要内容,如果未能解决你的问题,请参考以下文章
大型 WCF Web 服务请求因 (400) HTTP 错误请求而失败
卷曲工作,但 python 请求因 SSLError 而失败