我有一个需要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>
答案 0 :(得分:0)
我创建一个自定义绑定,将messageVersion设置为Soap12。这样,服务在Soap1.2上运行,但没有WS-Addressing
<customBinding>
<binding name="customBinding">
<textMessageEncoding messageVersion ="Soap12">
</textMessageEncoding>
<httpsTransport></httpsTransport>