當自定義管線中的訊息處理失敗時,您可以使用來源層級偵錯來識別並更正問題。 來源層級偵錯使用 Visual Studio 偵錯工具完成,方法是附加到 BTSNTSVC.exe(如果部署自訂管線),或 Pipeline.exe(如果使用獨立管線工具)。
程序
使用下列程式來偵錯自定義管線。
如何除錯已部署的管線
從 [群組中樞] 頁面和事件檢視器中追蹤查詢,可提供有關已部署元件中訊息處理失敗的實用資訊。 此資訊通常可用來縮小問題的來源範圍。 自定義管線一旦牽涉到,來源層級偵錯就可以用來識別任何有問題的程序代碼。
使用 Visual Studio 對已部署的自定義管線進行偵錯
將自定義管線專案方案載入Visual Studio。
將解決方案的輸出路徑變更為 <[安裝資料夾>\管線元件]。 在 [方案總管] 中,以滑鼠右鍵按下您的專案,按兩下 [建置] 索引標籤,然後按兩下 [ 瀏覽 ] 按鈕並選取 <[安裝資料夾>\管線元件] 目錄,以變更 [輸出路徑]。
從 Visual Studio 內,按兩下 [ 建置 | 部署] 來部署方案。
重新啟動執行管道作業的主機實例。 使用 BizTalk Server 管理控制台,流覽至執行管線的主機實例,以滑鼠右鍵單擊主機實例,然後按兩下 [ 重新啟動]。
將 Visual Studio 除錯程式附加至 BTSNTSVC.exe。 您可以按下 [偵 | 錯附加至進程]、按兩下 [顯示所有會話中的進程],然後按兩下 BTSNTSVC.exe來完成。
設定斷點。
在適當的位置放置訊息,以啟動自定義管線元件。 處理應該會在您設定的斷點上停止。
備註
如果您的程式代碼擲回例外狀況,BizTalk Server 會攔截它,最後暫停訊息。 若要避免這種行為,您應該在第一次發生例外狀況時中斷。
如何使用 Pipeline.exe 進行偵錯
您也可以使用 Pipeline.exe測試自定義管線。 這種方法的優點是您不必部署管線,但代價是無法在與生產環境相似的條件下運行。
備註
如果您的自定義管線使用一般檔案組合器/反組譯程式,則 Pipeline.exe 將無法正常執行。 這是因為 Pipeline.exe 無法存取 BizTalk 資料庫。 其中一個解決方案是移除組合器/反組譯工具元件,並使用 FFDasm.exe 和 FFAsm.exe個別測試它們。 如需詳細資訊,請參閱 管線工具 。
使用 Pipeline.exe 和 Visual Studio 對自定義管線進行除錯
將自定義管線專案方案載入Visual Studio。
將解決方案的輸出路徑變更為 <[安裝資料夾>\管線元件]。 在 [方案總管] 中,以滑鼠右鍵按下您的專案,按兩下 [建置] 索引標籤,然後按兩下 [ 瀏覽 ] 按鈕並選取 <[安裝資料夾>\管線元件] 目錄,以變更 [輸出路徑]。
變更解決方案的開始動作。 在 [方案總管] 中,以滑鼠右鍵按下您的專案,按兩下 [偵錯] 索引標籤,按兩下 [啟動外部程式],然後按下 [...] ,然後流覽至 <[安裝資料夾> ]\SDK\Utilities\PipelineTools and choose Pipeline.exe。 在 [開始選項] 下,輸入適合您元件的命令行自變數。 如需 Pipeline.exe的詳細資訊,請參閱 管線工具。 一般組態會指定管線和範例檔案:
<Path>\YourPipeline.btp -d <Path>\YourTestFile.txt -c設定斷點。
按 F5 開始偵錯。