用于gSOAP客户端的WCF服务

本文关键字:WCF 服务 客户端 gSOAP 用于 | 更新日期: 2023-09-27 18:14:23

我收到了一个请求,要建立一个服务来处理来自预先设计的客户端的流量。

文档说明服务是SOAP服务,但我后来发现预先设计的客户端使用的协议是使用SOAP 1.2的gSOAP

我得到的问题是,当将绑定分配给basicHttpBinding时,我得到的错误是Action '' not supported,因为客户端不发送SOAPAction标头(因为它在SOAP 1.2中不使用),如果我设置了我的WCF服务与wsHttpBinfing的绑定,我得到错误

HTTP/1.1 415 
Cannot process the message because the content type 'text/xml; charset=utf-8' 
was not the expected type 'application/soap+xml; charset=utf-8'.

所以基本上他们使用的gSOAP客户端发送SOAP 1.2的SOAP结构但带有SOAP 1.1的Content-Type

我的问题是如何让我的WCF服务处理来自客户端的请求。(客户端不能以任何方式修改)

我已经尝试设置一个customBinding

<customBinding>
    <binding name="myCustomBinding">
      <textMessageEncoding messageVersion="Soap12" />
      <httpTransport/>
    </binding>
</customBinding>

具有各种messagversion值。但我还没有找到一个有效的组合

用于gSOAP客户端的WCF服务

通过创建一个自定义Dispatcher来映射基于SOAPBody的调用来解决。

在Microsoft WCF示例中找到的解决方案。

样品发现于:

.NET Framework 4的Windows通信基础(WCF)和Windows工作流基础(WF)示例

确切的示例(基于安装示例的文件夹)

可扩展性'互操作' AdvancedDispatchByBody