我遇到了这个错误,并希望能够接近解决方案。使用的模式是全球标准,不受我的控制。
完整的错误消息:
执行接收管道失败: " Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines,Version = 3.0.1.0,Culture = neutral, 公钥= 31bf3856ad364e35"资料来源:" XML反汇编程序"接收 端口:" [接收端口名称]" URI:" [url to imput xml]"原因:文件 type" [namespace]#[envelope root element name]"与任何一个都不匹配 给定的模式。"
我的设置: 我有XMLReceive管道的信封模式来解除消息。我已在接收位置的EnvelopeSpecNames中指定了汇编信息来实现这一点。我已设置架构属性Envelope = Yes,并指定了Root Reference(因为架构中有许多根元素)。我使用PropertySchema从信封中提升某些属性,以便以后处理,所有引用似乎都是正确的。
我有双重检查配置,错误消息中引用的模式是BizTalk已知的(也检查了数据库以验证,现有和没有重复)。通过在每个地方重新复制并粘贴,验证每个名称。我已经检查过将应用程序导入到一个全新的环境中,并出现同样的错误。
我错过了什么?
我之前的理论是错误提供了错误的信息,但是由属性模式的引用引起,但是所有内容都会检出。我现在的理论是错误是完全不同的东西 - 但是什么!?
答案 0 :(得分:2)
在实际发布此问题后的短短10秒钟内,该理论成为了一个明确的解决方案:body xpath。
因此,总结一下,您需要指定: - Envelope = Yes(告诉BizTalk将消息视为封套消息) - 根元素(为包络提供正确的根元素) - body xpath(即信封内容消息的xpath表达式)
希望这对任何人都有帮助!