从我的Web应用程序调用时,我得到的WCF响应是:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header />
<s:Body>
<getSOAPDataResponse xmlns="http://localhost/WebServices">
<getSOAPDataResult> INFORMATION </getSOAPDataResult>
</getSOAPDataResponse>
</s:Body>
</s:Envelope>
Web应用程序非常陈旧,并且有一些硬编码的东西,它们在Response中寻找“Soap”作为前缀。 以前使用过Web服务,但现在Web服务已迁移到WCF服务。
WCF的预期响应是这样的:
<Soap:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<Soap:Header />
<Soap:Body>
<getSOAPDataResponse xmlns="http://localhost/WebServices">
<getSOAPDataResult> INFORMATION </getSOAPDataResult>
</getSOAPDataResponse>
</Soap:Body>
</Soap:Envelope>
所以我需要将WCF响应前缀“S”更改为“Soap”。怎么做到呢。任何帮助将受到高度赞赏。
提前致谢。
答案 0 :(得分:0)
This blog post解决了您的确切问题。您基本上需要创建自定义消息编码器。但请注意,如果您使用WsHttpBinding
邮件安全,则帖子中的方法将无效。如果您正在使用BasicHttpBinding
,请参阅帖子末尾的注释(您需要确保替换正确的文本,因为基本绑定使用SOAP 1.1而WS绑定使用SOAP 1.2)。