使用“已知消息类型”的业务规则策略实现基于内容的路由不适用于“样本”

时间:2010-08-09 06:46:40

标签: routing biztalk

我是Biztalk和ESB工具包的新手,我们已经尝试通过ESB Itinary实现基于内容的路由,但我遇到的问题是业务规则没有正确评估,我一直在关注在下面的链接中的微软示例,但它只是不想工作。 http://msdn.microsoft.com/en-us/library/ee264380%28v=BTS.10%29.aspx

当我们提交请求时,我们会收到以下错误,这意味着规则尚未评估。 有人可以帮忙吗?

未提供地图名称,这是必需的。

来源:Microsoft.Practices.ESB.PipelineComponents.DispatcherDisassemble

方法:Void Disassemble(Microsoft.BizTalk.Component.Interop.IPipelineContext,Microsoft.BizTalk.Message.Interop.IBaseMessage)

错误来源:Microsoft.Practices.ESB.Itinerary.Services

错误TargetSite:Microsoft.BizTalk.Message.Interop.IBaseMessage ExecuteTransform(Microsoft.BizTalk.Component.Interop.IPipelineContext,Microsoft.BizTalk.Message.Interop.IBaseMessage,System.String,Boolean)

错误StackTrace:at Microsoft.Practices.ESB.Itinerary.Services.TransformationService.ExecuteTransform(IPipelineContext context,IBaseMessage msg,String mapNameOrResolverString,Boolean validateSource)    在Microsoft.Practices.ESB.Itinerary.Services.TransformationService.Execute(IPipelineContext context,IBaseMessage msg,String resolverString,IItineraryStep步骤)    在Microsoft.Practices.ESB.PipelineComponents.DispatcherDisassemble.Disassemble(IPipelineContext pContext,IBaseMessage pInMsg)

1 个答案:

答案 0 :(得分:0)

约翰,

在某些情况下,您可能确实遇到过这个已知问题。它似乎不是一个错误,而是ESB工具包设计方式的副作用。

基本上,要使基于内容的路由起作用,您需要重新编写业务规则,以便消息类型(或更合适的SchemaStrongName)为Microsoft.Practices.ESB.ResolveProviderMessage。理想情况下,您需要有两组规则:一组具有“正确”的消息类型,另一组具有ESB Toolkit预期的规则。

您可以查看my article on my blog了解详情。