如何将信封架构中的任何元素发布到 MessageBox
我有一个信封消息(EM),在这个 EM 中,有一些元素在上下文中提升(用于路由),并且有一个 Any 元素(称为 Payload)保存实际架构实例以供进一步使用(其他编排正在订阅该元素)有效负载实例)。
这是一个通用服务(WCF,请求-响应),接收请求消息,返回响应消息(具有请求的一些元素并带有新生成的唯一事务 ID)和错误消息(如果适用)。
Payload 必须通过 EM 的一些上下文属性发布在 MessageBox(直接绑定)上。
如何最有效地做到这一点?
I have an envelope message (EM), in this EM there some elements which are promoted on the context (for routing) and there is one Any element (called Payload) holding the actual schema instance for further use (other orchestrations are subscribing to that Payload instance).
This is a generic service (WCF, request-response) receiving the request message, returning a response message (having some elements of the request and with a new generated unique transaction ID) and a fault message (when applicable).
The Payload must be published on the MessageBox (direct binding) with some of context properties of the EM.
How can this be done most effectivly ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您知道如何在接收管道内使用 xml 反汇编器组件处理信封模式吗?从您的问题中尚不清楚您是否尝试过此操作,或者这是否是您面临的挑战。
如果没有,请阅读此处:http://msdn。 microsoft.com/en-us/library/aa546772(v=BTS.20).aspx
Do you know about how to process envelope schemas using an xml disassembler component inside a receive pipeline? It is not clear from your question if you have tried this or not or if this is even the challenge you are facing.
If not then read here: http://msdn.microsoft.com/en-us/library/aa546772(v=BTS.20).aspx
吗?
如果您不需要第 3) 点,那么您的 WCF 编排只需将“是”消息发送回 WCF 客户端,而无需担心负载会发生什么情况。
WCF 接收位置上的标准 XMLReceive 应该能够自动分批消息,只要它将消息识别为信封架构,即包含
但是,如果您确实需要第 3 点,我可以看到一个问题是因为您正在使用 WCF 请求-response,客户端需要根据有效负载处理返回同步响应。使用标准信封分批很难做到这一点,因为您需要将有效负载处理的进度和结果关联回 WCF orch - 相反,您可能只是将外部(信封)架构保留为非信封,并且在 WCF Orch 中使用自定义接收管道来拆分消息,然后循环遍历每个消息并调用有效负载处理编排。
http://mstecharchitect.blogspot.com/2008/12/debatching -biztalk-xml-messages.html
Can I just confirm
If you don't need point 3) then your WCF orchestration can just send a 'yes' message back to the WCF client without worrying about what happens to your payload.
The standard XMLReceive on your WCF Receive location should be able to debatch the message automagically as long as it recognises it as an Envelope schema, i.e. contains
However, if you do need point 3 a problem I can see is that because you are using WCF request-response, is that the client is going to want a synchronous response back depending on the Payload processing. It would be difficult to do this using the standard envelope debatching as you would need to correlate the progress and results of your payload processing back to your WCF orch - instead, you might just keep your outer (Envelope) schema as non-envelope, and use a custom receive pipeline in your WCF orch to split out the messages and then loop through each and call your payload processing Orchestration.
http://mstecharchitect.blogspot.com/2008/12/debatching-biztalk-xml-messages.html