BizTalk错误:执行接收管道失败,文档类型与任何给定模式都不匹配

时间:2017-02-06 14:03:46

标签: xml visual-studio-2013 biztalk biztalk-2013r2

我遇到了这个错误,并希望能够接近解决方案。使用的模式是全球标准,不受我的控制。

完整的错误消息:

  

执行接收管道失败:   " 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已知的(也检查了数据库以验证,现有和没有重复)。通过在每个地方重新复制并粘贴,验证每个名称。我已经检查过将应用程序导入到一个全新的环境中,并出现同样的错误。

我错过了什么?

我之前的理论是错误提供了错误的信息,但是由属性模式的引用引起,但是所有内容都会检出。我现在的理论是错误是完全不同的东西 - 但是什么!?

1 个答案:

答案 0 :(得分:2)

在实际发布此问题后的短短10秒钟内,该理论成为了一个明确的解决方案:body xpath。

因此,总结一下,您需要指定: - Envelope = Yes(告诉BizTalk将消息视为封套消息) - 根元素(为包络提供正确的根元素) - body xpath(即信封内容消息的xpath表达式)

希望这对任何人都有帮助!