0

我目前需要配置一个动态发送端口来连接不符合 WS-I Basic Profile v1.1 的 ASMX Web 服务。具体来说,R9981 声明“一个信封必须恰好有 0 个或一个 soap:Body 元素的子元素。 ”我正在使用的 Web 服务期望一个具有多个元素的主体,导致 SOAP 主体看起来像:

<Body>
    <FirstElement />
    <SecondElement />
</Body>

我曾尝试同时使用 WCF-BasicHttp 和 WCF-Custom 适配器,但均未成功。似乎 BizTalk WCF 适配器无法处理具有多个元素的 SOAP 主体。

在接收位置,我使用模板将消息包装在一个元素下,以解决消息通过 BizTalk 传输的问题,我认为我可以使用自定义发送管道/自定义组件简单地拦截消息以去除包装元素。然后我尝试了一个带有消息检查器的自定义行为扩展,但这仍然发生在 BizTalk 的 WCF“BizTalkBodyWriter”工作之前。

因为我使用的是 ESB 2.1 工具包,所以我不能使用 HTTP 适配器从头开始创建我的 SOAP 消息。我最后的想法是我需要创建一个自定义 WCF LOB 适配器,但在我走这条路之前,我想确保我不会在这里让事情变得过于复杂,并且没有一个我刚刚忽略的简单方法。

4

1 回答 1

1

解决方案是创建一个自定义消息编码器。我遵循WCF 互操作性和可扩展性 - 第一部分作为指南。

于 2013-04-23T11:35:23.743 回答