WCF - 如何在服务响应中包含/添加 WS-Addressing“TO”标头

Posted

技术标签:

【中文标题】WCF - 如何在服务响应中包含/添加 WS-Addressing“TO”标头【英文标题】:WCF - How to include/Add a WS-Addressing "TO" header to the service response 【发布时间】:2013-04-15 04:07:08 【问题描述】:

我正在处理一个 WCF 主机服务,需要按照特定标准创建该服务。我正在使用自定义绑定来实现标准的大部分要求。

响应和请求标头中需要 WS-Addressing 标头,尽管有些似乎是自动配置的,但我们缺少“MessageID”、“From”和“To”元素。

我们使用消息检查器和“BeforeSendRequest”方法在测试客户端上添加了“From”、“To”和“ReplyTo”标头。这按预期工作。

在主机服务上,我们尝试使用“BeforeSendReply”方法对“MessageID”、“From”和“To”元素使用相同的方法。但是,消息中仅显示“MessageID”和“From”标头。未添加“To”标头。

谁能提供任何建议 1. 如何在响应消息中包含/添加“TO”ws-addressing 标头? 2. WCF 没有使用消息检查器方法在消息中添加“To”标头进行响应的原因?

【问题讨论】:

【参考方案1】:

它基本上归结为将您的ManualAddressing 属性设置为 true,以便通知服务底层的通道他不应再干预 To: 标头。

这可以通过 web.config 中的自定义绑定来完成:

<customBinding>
  <binding name="customBinding_manualAddressingEnabled">
    <textMessageEncoding />
    <httpTransport manualAddressing="true"/>
  </binding>
</customBinding>

详情请见answer。

【讨论】:

以上是关于WCF - 如何在服务响应中包含/添加 WS-Addressing“TO”标头的主要内容,如果未能解决你的问题,请参考以下文章

根据 WCF 服务中发布的 xml 内容识别操作,而不在 Url 中包含操作名称

在不使用 WIFI 的情况下在 WCF 服务调用中包含 SAML 2.0 令牌

如果 Json 变量在 WCF 中包含空格或任何特殊字符,如何获取 Json 值

如何在 Rails 的 JSON 响应中包含 cookie?

是否可以在 WCF wsdl 中包含一个 DataContract 类,而该类不属于任何 OperationContract?

WCF REST 服务中的 CORS 支持