2011-09-30 89 views
6

大家下午好,BizTalk:查找文档规范失败

我遇到了一个BizTalk业务流程问题,这很奇怪。

我编排的第一个接收形状失败,出现以下消息:

There was a failure executing the receive pipeline: 
"Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines 
Source: "XML disassembler" 
Receive Port: "ReceiveCanonicalPort" 
Reason: Finding the document specification by message type 
"http://www.openapplications.org/oagis/9#ProcessInvoice" failed. 
Verify the schema deployed properly. 

我放在一起测试文档与前几行是这样的:

<?xml version="1.0" encoding="utf-8"?> 
<ProcessInvoice 
    xmlns="http://www.openapplications.org/oagis/9" 
    releaseID="9.0" 
    targetNamespace="http://www.openapplications.org/oagis/9" 
    > 

我有什么已经检查过:

我检查了架构: 目标命名空间是'http://www.op enapplications.org/oagis/9' 根节点是'ProcessInvoice'

模式验证。

我的输入文件根据模式进行验证。

我检查过部署的模式。

我查看过是否有另一个具有重复命名空间和根节点的模式。

我已重新启动主机实例并重新部署了好几次。

我试着设置xml反汇编程序'允许无法识别的消息'属性为true。这会导致对象不会设置为实例异常。这似乎表明它不会反序列化它。

我曾向伟大的神布吉祈祷。

还有其他想法吗?

谢谢

回答

7

您必须在另一个程序集的某处定义另一个版本的该架构。

你确定你已经检查了每个可能的应用程序(包括BizTalk应用程序1)吗?

我能想到的唯一的其他事情可能是你有一个程序集重定向在配置文件中重定向到一个不存在的版本,但我不确定你甚至会得到你观察到的行为,如果这是案件。

另一件事 - 可能是模式的旧版本是GAC'd,主机实例仍然支持它。尝试重新启动以确保。

希望这会有所帮助。

+0

谢谢,我会再次检查。为了检查重复,我查看了“<所有Artifacts>”部分,并按照命名空间对模式进行了排序。 – Jay

+0

所有工件应该做到了。我没有想法。这是非常奇怪的。如果一个旧版本仍然GAC和一个主机实例仍然挂在它呢? –

+1

我相信我找到了。还有另一个程序集,其中具有不同的模式,但具有相同的名称空间。这导致两个相同名称的程序集中有两个不同的模式。我没有用于这个项目的模式有一个更新的版本号。所以我在考虑其他模式隐藏了这一个,因为名称冲突和版本号。 – Jay