用于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值。但我还没有找到一个有效的组合
通过创建一个自定义Dispatcher来映射基于SOAPBody的调用来解决。
在Microsoft WCF示例中找到的解决方案。
样品发现于:
.NET Framework 4的Windows通信基础(WCF)和Windows工作流基础(WF)示例
确切的示例(基于安装示例的文件夹)
可扩展性'互操作' AdvancedDispatchByBody