共用方式為


如何:使用 ESB 入口驗證訊息

目標

本節示範如何設定 ESB 發送器反組譯管線元件,以對提交至 ESB 的 XML 訊息執行訊息驗證。

在此操作說明主題中,您將完成下列步驟:

  • 建立使用 ItinerarySelectReceiveXml 管線的 ESB On-Ramp。

  • 設定 ESB 發送器反組譯管線元件來驗證訊息內容。

  • 設定 [路線選取器管線] 元件以解決適當的路線。

  • 使用有效的訊息和不正確訊息來測試訊息驗證。

必要條件

本操作說明主題中的程式需要完成 開發活動的必要條件

開始之前

請先完成下列工作,再執行本操作說明主題稍後的步驟:

  • 建立不正確測試訊息。

  • 建立 ESB 路線網域特定語言 (DSL) 模型。

  • 設定路線的屬性。

  • 定義路線的結構。

  • 將模型匯出至路線資料庫。

    下列程式描述如何執行這些動作。

建立不正確測試訊息

  1. 在 Windows 檔案總管中,流覽至 C:\HowTos。

  2. 建立 NAOrderDoc.xml 複本,然後重新命名複本 Invalid.xml。

  3. 在 [記事本] 中,開啟 Invalid.xml。

  4. ns0:requestType 10 < /ns0:requestType >> 變更 < 為 < ns0:requestType > TEN < /ns0:requestType >

  5. 將 Invalid.xml 儲存為 UTF-8,然後關閉 [記事本]。

    注意

    藉由將這個專案的數值變更為文字,訊息將不再根據架構有效。

建立 ESB 路線 DSL 模型

  1. 在 Visual Studio 中,開啟 C:\HowTos\Patterns\Patterns.sln。

  2. 在方案總管中,以滑鼠右鍵按一下[路線程式庫],指向 [新增],然後按一下 [新增路線]。

  3. 在 [新增專案] 對話方塊中,于 [名稱] 方塊中輸入[驗證],然後按一下 [新增]。

設定路線的屬性

  1. 在 Visual Studio 中,按一下 Validation.itinerary的設計介面。 在[驗證] 屬性視窗中,設定下列屬性:

    1. 在 [ 模型匯出工具] 下拉式清單中,按一下 [資料庫路線匯出工具]。

    2. 按一下 [路線資料庫 ] 屬性旁的省略號按鈕 (...) 。

    3. 在 [連線屬性] 對話方塊中,選擇裝載路線存放庫資料庫的SQL Server,然後指定資料庫的名稱, (預設名稱為EsbItineraryDb) 。

  2. 在 [ 路線狀態 ] 下拉式清單中,按一下 [已部署]。

    注意

    此步驟可讓您將路線匯出至中央存放庫;收到訊息時,可以從此存放庫選取並附加路線。 您稍後會設定路線選取器管線元件,以使用靜態解析程式從此存放庫選取適當的路線。

定義路線的結構

  1. 從 [工具箱] 中,將 On-Ramp 模型專案拖曳至設計介面。 在OnRamp1屬性視窗中,設定下列屬性:

    1. 按一下 [名稱] 屬性,然後輸入 ReceiveNAOrder

    2. 在 [ 擴充器 ] 下拉式清單中,按一下 [ On-Ramp ESB 擴充器]。

    3. [BizTalk 應用程式 ] 下拉式清單中,按一下 [Microsoft.Practices.ESB]。

    4. 在 [ 接收埠 ] 下拉式清單中,按一下 [OnRamp.行程]。

  2. 從 [工具箱] 中,將 Off-Ramp 模型專案拖曳至設計介面,然後將它放在現有模型元素的右邊。 在OffRamp1屬性視窗中,設定下列屬性:

    1. 按一下 [名稱] 屬性,然後輸入 SendNAOrder

    2. 在 [ 擴充器] 下拉式清單中,按一下 [ 下拉式 ESB 擴充器]。

    3. [BizTalk 應用程式 ] 下拉式清單中,按一下 [GlobalBank.ESB]。

    4. 在 [ 傳送埠 ] 下拉式清單中,按一下 [DynamicResolutionOneWay]。

  3. 從 [工具箱] 中,將 [行程服務 ] 模型專案拖曳至設計介面,然後將它放在 ReceiveNAOrder 模型元素與 SendNAOrder 模型元素之間。 在ItineraryService1屬性視窗中,設定下列屬性:

    1. 按一下 [名稱] 屬性,然後輸入 SendPortFilter

    2. 在 [ 路線服務擴充器 ] 下拉式清單中,按一下 [ 下拉式擴充器]。

    3. 在 [ 關閉坡形 ] 下拉式清單中,展開 [SendNAOrder],然後按一下 [ 傳送處理常式]。

  4. 以滑鼠右鍵按一下SendPortFilter元素的Resolver集合,然後按一下 [新增解析程式]。 在Resolver1屬性視窗中,設定下列屬性:

    1. 按一下 [名稱] 屬性,然後輸入 ConfigureOffRamp

    2. 在 [ 解析程式實作 ] 下拉式清單中,按一下 [靜態解析程式延伸模組]。

    3. 在 [ 傳輸名稱] 下拉式清單中,按一下 [檔案]。

    4. 按一下 [傳輸位置] 屬性,然後輸入 C:\HowTos\Out\Validated%MessageID%.xml

  5. 在 [工具箱] 中,按一下 [連接器]。 將 連線從 ReceiveNAOrder 模型專案拖曳至 SendPortFilter 模型專案。

  6. 在 [工具箱] 中,按一下 [連接器]。 將 連線從 SendPortFilter 模型專案拖曳至 SendNAOrder 模型專案。

將模型匯出至路線資料庫

  1. 在 Visual Studio 中,以滑鼠右鍵按一下 驗證 路線的設計介面,然後按一下 [ 匯出模型]。

    注意

    路線已匯出至路線資料庫,而且現在可供路線選取器管線元件使用。

  2. 儲存所有專案成品。

步驟

建立及設定 ESB 斜線

  1. 按一下工作列上的 [開始],指向 [所有程式]、指向[BizTalk Server],然後按一下[BizTalk Server系統管理]。

  2. 在 BizTalk Server 管理主控台中,依序展開[BizTalk 群組]、[應用程式] 和[Microsoft.Practices.ESB]。

  3. 以滑鼠右鍵按一下 [接收位置],指向 [ 新增],然後按一下 [單向接收位置]。

  4. 在 [ 選取接收埠 ] 對話方塊中,按一下 [OnRamp.行程],然後按一下 [ 確定]。

  5. 在 [接收位置屬性]對話方塊中,于 [名稱] 方塊中輸入OnRamp.Itinerary.HowTo

  6. 在 [ 類型 ] 下拉式清單中,按一下 [ 檔案],然後按一下 [ 設定]。

  7. 在 [檔案傳輸屬性]對話方塊中,于[接收] 資料夾方塊中輸入C:\HowTos\DropFolder,然後按一下 [確定]。

設定斜線以執行訊息驗證

  1. 在 [ 接收位置屬性] 對話方塊的 [ 接收管線 ] 下拉式清單中,按一下 [路線][選取][ReceiveXml],然後按一下省略號按鈕 (...) 。

  2. 使用 [ 設定管線 ] 對話方塊來設定下列 XML 反組譯程式 元件屬性:

    1. 展開 GlobalBank.Esb 應用程式,然後按一下 [ 架構]。 以滑鼠右鍵按一下 GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc,然後按一下 [ 屬性]。 複製 [名稱 ] 和 [ 元件 ] 屬性,並將其貼到文字檔中。

    2. [反組譯元件] 中,按一下[ValidateDocument] 下拉式清單中的[True]。

    3. 按一下 DocumentSpecNames 屬性,然後輸入架構的完整名稱。 完整名稱會以名稱開頭,後面接著逗號和步驟 a 中擷取的元件資訊。 以下是一個範例:

      GlobalBank.ESB.DynamicResolution.Schemas.NAOrderDoc、GlobalBank.ESB.DynamicResolution.Schemas、Version=2.0.0.0、Culture=neutral、PublicKeyToken=c2c8b87f54180a

      注意

      這是要驗證之架構的完整名稱;它是由架構名稱和四個元件屬性所組成:元件名稱、版本、文化特性和公開金鑰權杖。 允許多個值;使用管道分隔多個架構 (|) 符號。

設定路線選取器管線元件

  1. 在 [ 設定管線 ] 對話方塊中,設定下列 路線選取器 元件屬性:

    1. 按一下 [行程][FactKey ] 屬性,然後輸入 Resolver.Itinerary

    2. 按一下 ResolverConnectionString 屬性,然後輸入 ITINERARY:\\name=Validation;

    3. 按一下 [確定 ] 關閉 [ 設定管線 ] 對話方塊。

  2. 按一下 [確定 ] 關閉 [ 接收位置屬性 ] 對話方塊。

  3. 在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下OnRamp.Itinerary.HowTo接收位置,然後按一下 [啟用]。

測試訊息驗證和路線選擇

  1. 在 Windows 檔案總管中,流覽至 C:\HowTos。

  2. 複製 (不會將) NAOrderDoc.xml 移至 DropFolder 資料夾。

  3. 流覽至 C:\HowTos\Out。確認已將 Validated%MessageID%.xml 寫入目錄。

    注意

    有效的訊息會如預期般完成其路線型路由。

  4. 從 Out 資料夾刪除 Validated%MessageID%.xml。

  5. 在 Windows 檔案總管中,流覽至 C:\HowTos。

  6. 複製 (不會將) Invalid.xml 移至 DropFolder 資料夾。

  7. 流覽至 C:\HowTos\Out。確認尚未傳遞任何新訊息。

    注意

    無法驗證訊息;因此,無法完成路線型路由。

  8. 按一下工作列上的 [開始],指向 [系統管理工具],然後按一下[事件檢視器]。

  9. 在事件檢視器中,展開[Windows 記錄],然後按一下 [應用程式]。

  10. 找出來源BizTalk Server的最新事件,事件識別碼5719

    注意

    無效訊息的提交和失敗導致應用程式事件記錄檔的例外狀況專案。

  11. 在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下OnRamp.Itinerary.HowTo接收位置,然後按一下 [停用]。

  12. 停用 OnRamp.Itinerary.HowTo接收位置之後,請以滑鼠右鍵按一下它,然後按一下 [刪除]。 在 [ 確認刪除接收位置] 對話方塊中,按一下 [ ]。

其他資源

如需詳細資訊,請參閱下列相關主題: