SOAP请求使用MEX绑定失败
本文关键字:绑定 失败 MEX 请求 SOAP | 更新日期: 2023-09-27 17:54:31
我有一个奇怪的问题与一些服务。我不是开发人员,我是系统管理员。
我们在开发环境中运行了一些SOAP服务。一些SOAP服务开始失败。这里有一个例子。这些都来自同一个web配置。
<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文档。
请帮助。我完全被难住了。
在此端点中不能指定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>