我有一个信封消息(EM),在这个 EM 中,有一些元素在上下文中被提升(用于路由),并且有一个 Any 元素(称为 Payload)保存实际的模式实例以供进一步使用(其他编排正在订阅那个有效负载实例)。
这是一个通用服务(WCF,request-response)接收请求消息,返回响应消息(具有请求的一些元素和新生成的唯一事务 ID)和故障消息(如果适用)。
Payload 必须在带有 EM 的一些上下文属性的 MessageBox(直接绑定)上发布。
如何最有效地做到这一点?
我有一个信封消息(EM),在这个 EM 中,有一些元素在上下文中被提升(用于路由),并且有一个 Any 元素(称为 Payload)保存实际的模式实例以供进一步使用(其他编排正在订阅那个有效负载实例)。
这是一个通用服务(WCF,request-response)接收请求消息,返回响应消息(具有请求的一些元素和新生成的唯一事务 ID)和故障消息(如果适用)。
Payload 必须在带有 EM 的一些上下文属性的 MessageBox(直接绑定)上发布。
如何最有效地做到这一点?
我可以确认一下吗
如果您不需要第 3 点),那么您的 WCF 编排只需将“是”消息发送回 WCF 客户端,而无需担心您的有效负载会发生什么。
WCF 接收位置上的标准 XMLReceive 应该能够自动分批消息,只要它将消息识别为信封模式,即包含
<b:schemaInfo is_envelope="yes" xmlns:b="somexmlns"/>
<b:recordInfo body_xpath="xpathtoroot"/>
但是,如果您确实需要第 3 点,我可以看到的一个问题是,由于您使用的是 WCF 请求-响应,客户端是否需要根据有效负载处理返回同步响应。使用标准信封分批很难做到这一点,因为您需要将有效负载处理的进度和结果关联回您的 WCF orch - 相反,您可能只是将外部(信封)架构保持为非信封,并且在您的 WCF orch 中使用自定义接收管道来拆分消息,然后遍历每个消息并调用您的有效负载处理编排。
http://mstecharchitect.blogspot.com/2008/12/debatching-biztalk-xml-messages.html
您知道如何在接收管道中使用 xml 反汇编组件来处理信封模式吗?从您的问题中不清楚您是否尝试过这个,或者这甚至是您面临的挑战。
如果没有,请阅读此处: http: //msdn.microsoft.com/en-us/library/aa546772 (v=BTS.20).aspx