首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF SOAP回复ASMX SOAP回复格式

WCF SOAP回复ASMX SOAP回复格式
EN

Stack Overflow用户
提问于 2012-11-18 05:09:55
回答 1查看 744关注 0票数 2

我有一个第三方SOAP客户端,能够与旧的ASMX old服务进行通信。

问题出在WCF服务上。

我的WCF服务接收来自此客户端的消息时没有问题,但是客户端不喜欢我的WCF响应。

我的测试WCF服务发送以下响应:

代码语言:javascript
复制
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
 <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <testResponse xmlns="http://www.tempuri.org">
   <testResult>randomStringData</testResult>
  </testResponse>
 </s:Body>
</s:Envelope>

但是旧的SOAP客户端需要这样的响应(ASMX服务):

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <soap:Body>
  <testResponse xmlns="http://tempuri.org/">
   <testResult>randomStringData</testResult>
  </testResponse>
 </soap:Body>
</soap:Envelope>

我无法控制客户。有没有一种方法可以将我的WCF配置为发送与ASMX服务完全相同的消息?

我的WCF服务正在使用以下绑定:

代码语言:javascript
复制
<customBinding>
    <binding name="soap11">
      <textMessageEncoding messageVersion="Soap11" writeEncoding="utf-8"></textMessageEncoding>
      <httpTransport></httpTransport>
    </binding>
  </customBinding>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-25 05:59:11

我设法用自定义消息检查器和BeforeSendReply方法解决了前缀问题。

http://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.idispatchmessageinspector.beforesendreply.aspx

附注:另一个很棒的方法是AfterReceiveRequest,用于各种消息调整魔术!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13434815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档