共用方式為


如何:轉換訊息,並使用要求-回應訊息交換模式將其路由至服務端點

目標

本節示範如何使用 ESB Designer網域特定語言 (DSL) 來建立可搭配雙向坡形使用的要求回應路線。 您將建立傳閱名單以接收訊息、轉換訊息、將訊息提交至服務,並將服務回應訊息傳回給原始訊息的提交者。

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

  • 使用實作 Microsoft BizTalk Server地圖的轉換路線服務,建立路線傳閱名單。

  • 設定路線以將已轉換的訊息路由傳送至服務端點。

  • 設定路線以將服務回應訊息傳回給原始傳送者。

  • 使用路線測試用戶端範例應用程式來測試路線。

必要條件

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

步驟

建立 ESB 路線 DSL 模型

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

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

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

設定路線的屬性

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

    1. 在 [ 是要求回應 ] 下拉式清單中,按一下 [True]。

    2. 在 [ 模型匯出工具 ] 下拉式清單中,按一下 [XML 路線匯出工具]。

    3. [擴充功能設定 ] 區段中,按一下 [行程 XML 檔案 ] 屬性旁的省略號按鈕 (...) 。

    4. 在 [ 選取 XML 檔案 ] 對話方塊的 [ 檔案名 ] 方塊中,輸入 C:\HowTos\Itineraries\RequestResponse,然後按一下 [ 儲存]。

      注意

      此步驟可讓您將路線匯出為 XML 到本機檔案位置。 藉由將路線匯出至本機檔案位置,而不是前往路線資料庫,即可使用 ESB 測試用戶端應用程式來測試路線。 您稍後將會在本操作說明主題中完成此程式。

定義路線的結構

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

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

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

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

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

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

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

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

      注意

      此屬性會定義在管線 (傳訊) 中進行進程。 或者,如果流程將在協調流程中發生,請將 [路線服務擴充項 ] 屬性設定為 Orchestration Extender

    3. 在 [ 容器 ] 下拉式清單中,展開 [ReceiveNAOrder],然後按一下 [ 接收處理常式]。

    4. 在 [ 服務名稱] 下拉式清單中,按一下 [Microsoft.Practices.ESB.Services.Transform]。

  3. 以滑鼠右鍵按一下MapNAOrderToCNOrder模型專案的Resolver集合,然後按一下 [新增解析程式]。 在Resolver1屬性視窗中,設定下列屬性:

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

    2. 在 [ 解析程式實 作] 下拉式清單中,按一下 [靜態解析程式擴充功能]。

    3. 在 [ 轉換類型] 下拉式清單中,按一下 [GlobalBank.ESB.DynamicResolution.Transforms.SubmitOrderRequestNA_To_SubmitOrderRequestCN]。

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

  5. 從 [工具箱] 中,將 [路線服務 ] 模型專案拖曳至設計介面,然後將它放在 MapNAOrderToCNOrder 模型元素的右邊。 在ItineraryService1屬性視窗中,設定下列屬性:

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

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

      注意

      此屬性會定義在管線 (傳訊) 中進行進程。 或者,如果流程將在協調流程中發生,請將 [路線服務擴充項 ] 屬性設定為 Orchestration Extender

    3. 在 [ 容器 ] 下拉式清單中,展開 [ReceiveNAOrder],然後按一下 [ 接收處理常式]。

    4. 在 [ 服務名稱 ] 下拉式清單中,按一下 [Microsoft.Practices.ESB.Services.Routing]。

  6. 以滑鼠右鍵按一下RouteToCNService模型專案的Resolver集合,然後按一下[新增解析程式]。 在Resolver1屬性視窗中,設定下列屬性:

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

    2. 在 [ 解析程式實 作] 下拉式清單中,按一下 [靜態解析程式擴充功能]。

    3. 在 [ 傳輸名稱] 下拉式清單中,按一下 [WCF-BasicHttp]。

    4. 按一下 [ 傳輸位置] 屬性,然後輸入 http://localhost/ESB.CanadianServices/SubmitPOService.asmx

    5. 按一下 [目標命名空間] 屬性,然後輸入 http://globalbank.esb.dynamicresolution.com/canadianservices

    6. 按一下 [動作 ] 屬性,然後輸入 submitOrder

  7. 在 [工具箱] 中,按一下 [連接器]。 將 連線從 MapNAOrderToCNOrder 模型元素拖曳至 RouteToCNService 模型元素。

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

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

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

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

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

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

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

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

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

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

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

  12. 以滑鼠右鍵按一下設計介面,然後按一下 [ 驗證]。

    注意

    路線會驗證;不需要將下拉式連線回到斜道,以便將回應訊息傳回要求者。 藉由使用雙向斜向,最終訊息會自動傳回給要求者。

匯出模型以搭配路線測試用戶端使用

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

    注意

    路線的 XML 版本會在 Visual Studio 中開啟。

  2. 儲存所有專案成品。

  3. 在 Windows 檔案總管中,流覽至 C:\HowTos\行程。 請注意建立路線 XML (RequestResponse.xml) 。

測試路線

  1. 使用開發 活動 必要條件 (C:\HowTos\ESB.Itinerary.Test.exe - 快捷方式) 期間建立的快捷方式,開啟路線測試用戶端應用程式範例應用程式。

  2. 在 [路線測試用戶端] 中,清除 [ 使用 WCF 服務 ] 核取方塊。

  3. [Web 服務選項] 區段中,選取 [ 雙向服務 ] 核取方塊,然後按一下 [ 載入路線]。

  4. 在 [ 開啟路線檔案 ] 對話方塊中,流覽至 C:\HowTos\行程。 選取 [RequestResponse.xml],然後按一下 [ 開啟 ] 以載入路線。

  5. 按一下 [確定 ] 清除 [ 成功載入路線] 訊息。

  6. 在 [路線測試用戶端] 中,按一下 [ 載入消息 ] 方塊旁的省略號按鈕 (...) 。

  7. 在 [ 選取要載入的 XML 檔 ] 對話方塊中,流覽至 C:\HowTos。 選取 NAOrderDoc.xml,然後按一下 [ 開啟 ] 以載入測試訊息。

  8. 按一下 [ 提交要求] 按鈕。 測試完成時,按一下 [ 確定 ] 以關閉出現的確認。

  9. 在 [ 結果 ] 方塊中,請注意訊息的根節點是 submitOrderResponse ,而預設命名空間為 ... 加拿大服務

    注意

    如果回應訊息在回應傳送給要求者之前需要其他轉換,您必須使用包含 ESB 轉寄站元件的管線。 如需此功能的範例,請參閱 安裝和執行多個 Web 服務範例

其他資源

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