2

从我的 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 应用程序非常旧,并且有一些硬编码的东西,在响应中寻找“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”。如何做呢。任何帮助将不胜感激。

提前致谢。

4

1 回答 1

0

这篇博文解决了您的确切问题。您基本上需要创建一个自定义消息编码器。但请注意,如果您使用WsHttpBinding消息安全性,则帖子中的方法将不起作用。如果您使用BasicHttpBinding,请参阅文章末尾的评论(您需要确保替换正确的文本,因为基本绑定使用 SOAP 1.1,而 WS 绑定使用 SOAP 1.2)。

于 2012-06-13T13:11:54.707 回答