我是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)
答案 0 :(得分:0)
约翰,
在某些情况下,您可能确实遇到过这个已知问题。它似乎不是一个错误,而是ESB工具包设计方式的副作用。
基本上,要使基于内容的路由起作用,您需要重新编写业务规则,以便消息类型(或更合适的SchemaStrongName)为Microsoft.Practices.ESB.ResolveProviderMessage。理想情况下,您需要有两组规则:一组具有“正确”的消息类型,另一组具有ESB Toolkit预期的规则。
您可以查看my article on my blog了解详情。