2011-03-08 50 views
0

我已經設置了接收消息和接收端口以監視XML文件。 我還添加了表達形狀使用當目錄中有新的xml文件時,使用BizTalk業務流程來調用.NET類庫以讀取xml

System.Diagnostics.Process.Start 
     (@"C:\TEMP\XmlReader\XmlReader\bin\Release\XmlReader.exe"); 

當我部署的BizTalk,只要新的文件在接收位置接收得到,文件消失,沒有任何反應執行.NET類庫。我有其他的編排項目與接收和發送端口的文件消失,並不移動發送位置

+0

打開接收位置和編排的跟蹤,查看暫停服務實例和事件日誌 - 它應該爲您提供發生了什麼事情的線索。 XMLReader是你自己的類庫嗎?如果是這樣,您還需要簽署和GAC。 – StuartLC

+0

xmlreader.exe只是讀取xml內容。 xmlreader已簽名,但我們不使用GAC – developer

回答

1

我不知道我遵循你的邏輯。但是,假定您已在業務流程和接收端口發佈的消息之間正確設置了預訂。 當編排被激活時,原始文件系統XML將永遠消失。事實上,一旦接收位置被啓用並消耗它,它就會消失。 因此,如果您嘗試從編排中手動讀取文件系統外的原始XML文件,則不會成功。

BizTalk有一些陷阱,如果有疑問,堅持漸進式方法;

  1. 直接從管理控制檯創建/啓用接收端口和位置(現在忘記VisualStudio)。
  2. 通過XML(或其他)
  3. 使用管理控制檯來查看是否創建了任何消息以及它們的狀態是什麼。
  4. 創建包含

    System.Diagnostics.Debug.WriteLine()

    報表的編制,它訂閱接收端口。

  5. 放入消息並使用DebugView查看WriteLine方法調用的輸出。
0

如果我沒有誤解你,你正在使用自定義的xmlreader.exe來讀取Xml文檔並將它們提交給BizTalk Orchestration。這正是BizTalk接收端口+接收位置(+ XmlPipeline)爲您所做的。

對我來說,您的問題看起來好像您的xmlreader.exe和您的BizTalk接收端口+接收位置正在互相攻擊。

如果必須對傳入消息進行特殊處理,則需要創建管道組件。

檢查您的BizTalk管理控制檯 - 我敢打賭,您會發現所有收到的郵件都被暫停,因爲您的業務流程沒有收到它們。