BizTalk:查找文档规范失败

Jay*_*Jay 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.  
Run Code Online (Sandbox Code Playgroud)

我把测试文档与前几行放在一起,如下所示:

<?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"
  >
Run Code Online (Sandbox Code Playgroud)

我已经检查了什么:

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

架构验证.

我的输入文件验证了架构.

我已经检查过部署了架构.

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

我重新启动了主机实例并重新部署了几次.

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

我向伟大的神Boogie祈祷.

还有其他想法吗?

谢谢

tom*_*ern 8

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

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

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

另一件事 - 可能是旧版本的架构是GAC并且主机实例仍然拥有它.尝试重新启动以确保.

希望这可以帮助.

  • 我相信我已经找到了。还有另一个程序集,其中具有不同的架构,但具有相同的命名空间。这会导致两个名称相同的程序集中产生两个不同的架构。我没有用于该项目的架构具有更高的版本号。所以我认为由于名称冲突和版本号,另一个模式隐藏了这个模式。 (2认同)
  • 我也遇到了同样的问题,这是装配问题。我犯了一个愚蠢的错误,没有重新启动主机实例,我想它引用了缓存中的旧模式(我可能不在这里)。重新启动主机实例后,问题得到解决。 (2认同)