2011-09-30 78 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