C#WCF服务在消息上指定的SOAP操作''与HTTP SOAP Action不匹配,' RealTimeTransaction'

时间:2017-12-20 00:04:36

标签: c# web-services wcf https soap1.2

我有一个需要soap 1.2并在https上运行的WCF服务。该服务基于" http://www.caqh.org/SOAP/WSDL/" WSDL。我使用SoapUI调用该服务,它工作正常。然后我尝试使用基于follogin WSDL" http://www.caqh.org/SOAP/WSDL/"的标准客户端。它显示错误: 在消息上指定的SOAP操作''与HTTP SOAP Action,' RealTimeTransaction'不匹配。 我验证并且如果在WS-A选项下的SoapUi中"启用WS-A寻址是检查,如果我删除该选项并运行该服务它返回相同的错误:消息上指定的SOAP操作,&# 39;',与HTTP SOAP Action不匹配,' RealTimeTransaction'。这让我觉得问题是我用于测试的标准客户端没有设置WS-A寻址选项。

我的服务中是否有一种方法可以将我的服务配置为使用运行在https上的Soap1.2并且不重新启用启用WS-A寻址选项?

我试着没有成功的客户。

这是我的约束力

<endpoint address="" binding="wsHttpBinding" 
bindingConfiguration="secureHttpBinding"
name="CORESoapBinding" bindingName="CORESoapBinding" 
bindingNamespace="http://www.caqh.org/SOAP/WSDL/"
contract="CORE.Interfaces.CORETransactions" />
<endpoint address="mex" binding="mexHttpsBinding" 
contract="IMetadataExchange" /> 
</service>
</services>
<protocolMapping>
<remove scheme="http" />
<add scheme="http" binding="basicHttpBinding" />
<add scheme="https" binding="wsHttpBinding" /> 
</protocolMapping>
<bindings>
<wsHttpBinding>
<binding name="secureHttpBinding">
<security mode="Transport">
<transport clientCredentialType="None" >
</transport>
</security>
</binding>
</wsHttpBinding>

1 个答案:

答案 0 :(得分:0)

我创建一个自定义绑定,将messageVersion设置为Soap12。这样,服务在Soap1.2上运行,但没有WS-Addressing

<customBinding>
<binding name="customBinding">
<textMessageEncoding messageVersion ="Soap12">
</textMessageEncoding>
<httpsTransport></httpsTransport>