更改WCF响应中的前缀
从我的Web应用程序调用时,我得到的WCF响应是:更改WCF响应中的前缀,wcf,Wcf,从我的Web应用程序调用时,我得到的WCF响应是: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header /> <s:Body> <getSOAPDataResponse xmlns="http://localhost/WebServices"> <getSOAPDataResult> INFORMATION </g
<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”。怎样才能做到呢。我们将非常感谢您的帮助
提前感谢。解决了您的确切问题。您基本上需要创建一个自定义消息编码器。但是要注意,如果您正在使用带有消息安全性的WsHttpBinding
,那么本文中的方法将不起作用。如果您使用的是BasicHttpBinding
,请参阅本文末尾的注释(您需要确保替换的文本正确,因为基本绑定使用SOAP 1.1,WS-binding使用SOAP 1.2)。解决了您的确切问题。您基本上需要创建一个自定义消息编码器。但是要注意,如果您正在使用带有消息安全性的WsHttpBinding
,那么本文中的方法将不起作用。如果您使用的是BasicHttpBinding
,请参阅本文末尾的注释(您需要确保替换的文本正确,因为基本绑定使用SOAP 1.1,WS-binding使用SOAP 1.2)