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文档。

请帮助。我完全被难住了。

SOAP请求使用MEX绑定失败

在此端点中不能指定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>