共用方式為


如何:將服務發佈至 UDDI 3.0 登錄

目標

本節示範如何使用 UDDI 服務網站發佈可從路線內解析的 Web 服務端點,以便路由傳送 ESB 訊息。 您將會複製目前發佈至登錄的現有 PurchaseOrderSubmitOrderService 服務。

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

  • 使用 UDDI 發行者工具,將服務發佈至通用描述、探索和整合 (UDDI) 3 登錄。

  • 使用使用 UDDI3 解析程式解析服務端點的路線路由名單來測試服務發行集。

必要條件

本操作說明主題中的程式需要完成 開發活動 的必要條件和執行 UDDI 發行者工具, (您可以在 %ESB Install Folder%\Bin\Microsoft.Practices.ESB.UDDIPublisher.exe) 安裝。

步驟

在 UDDI 登錄中建立 NewPOService

  1. 在 Internet Explorer 中,依預設流覽至 UDDI 服務網站 (,此 URL 為 http://localhost/uddi).

  2. [uddi 服務] 頁面上,按一下 [ 發佈]。

  3. 在 [發佈] 窗格中,以滑鼠右鍵按一下 [Microsoft.Practices.ESB],然後按一下 [ 新增服務]。

  4. 在下列頁面上,選取 [ 指定要使用的金鑰],然後按一下 [ 繼續]。

  5. 在下列頁面上,按一下 esb 索引鍵分割區。 在 [ 金鑰尾碼 ] 方塊中,輸入 newposervice,然後按一下 [ 繼續]。

  6. 在下列頁面上,按一下 [ ([新增服務名稱 ] 旁的 [) ],按一下 [ 編輯]。 將服務命名為 NewPOService,然後按一下 [ 更新]。

  7. 按一下 [新增描述],輸入服務的描述 (,例如 範例服務) ,然後按一下 [ 更新]。

新增 NewPOService 的系結

  1. 按一下 [ 系結] 索引 標籤,然後按一下 [ 新增系結]。

  2. 選取 [指定要使用的金鑰],然後按一下 [ 繼續]。

  3. 在下列頁面上,按一下 esb 索引鍵分割區。 在 [ 金鑰尾碼 ] 方塊中,輸入 newposervicebinding,然後按一下 [ 繼續]。

  4. [存取點] 底下,按一下 [ 編輯],然後完成下列動作:

    1. 在 [ 存取點 ] 方塊中,輸入 http://localhost/ESB.CanadianServices/SubmitPOService.asmx

    2. 在 [ 使用類型] 下拉式清單中,按一下 [端點],然後按一下 [ 更新]。

設定系結實例資訊

  1. 按一下 [ 實例資訊] 索引 標籤,然後按一下 [ 新增實例資訊]。

  2. 在 [ 搜尋包含的 tModel 名稱] 方塊中,輸入 %esb% ,然後按一下 [ 搜尋]。

  3. 找出並按一下適用于transporttypetModel

    注意

    若要完成此程式中的其餘步驟,您可能需要在第 1 頁到第 2 頁之間變更。

  4. 在 [ 描述] 區 段中,按一下 [ 新增描述]。

  5. 在 [ 描述 ] 方塊中,輸入 ESB 路線使用的傳輸類型,然後按一下 [ 更新]。

  6. 按一下 [ 實例詳細資料] 索引 標籤,然後按一下 [ 編輯]。

  7. 在 [ 實例參數 ] 方塊中,輸入 WCF-BasicHttp,然後按一下 [ 更新]。

  8. 在 [ 描述] 區 段中,按一下 [ 新增描述]。

  9. 在 [ 描述 ] 方塊中,輸入 WCF 基本 HTTP 傳輸,然後按一下 [ 更新]。

  10. 在 [發佈] 窗格的 [NewPOService] 底下,按一下 http://localhost/esb.canadianservices/submitposervice.asmx

  11. 在 [ 實例資訊] 索引 標籤上,按一下 [ 新增實例資訊]。

  12. 使用稍早所述的步驟,根據下表所示的值,新增下列實例資訊。

    tModel Description 參數 參數描述
    microsoft-com:esb:runtimeresolution:messageexchangepattern 訊息交換模式 雙向 雙向作業
    microsoft-com:esb:runtimeresolution:cachetimeout 快取逾時 -1 目前已停用
    microsoft-com:esb:runtimeresolution:jaxrpcresponse JaxRpcResponse false
    microsoft-com:esb:runtimeresolution:action 服務動作 submitOrder 指定要叫用的服務方法
    microsoft-com:esb:runtimeresolution:targetnamespace 服務命名空間 http://globalbank.esb.dynamicresolution.com/canadianservices 目標命名空間

設定系結分類

  1. 在 [發佈] 窗格的 [NewPOService] 底下,按一下 http://localhost/esb.canadianservices/submitposervice.asmx

  2. 在 [ 類別] 索引 標籤上,按一下 [ 新增自訂類別]。

  3. 在 [ 搜尋 ] 方塊中,輸入 %esb% ,然後按一下 [ 搜尋]。

  4. 找出並按一下 microsoft-com:esb:runtimeresolution:biztalkapplication tModel。

  5. 在 [ 金鑰名稱] 方塊中,輸入 BizTalk 應用程式

  6. 在 [ 索引鍵值 ] 方塊中,輸入 Microsoft.Practices.ESB,然後按一下 [ 新增類別]。

  7. 使用稍早所述的步驟,根據下表所示的值,新增下列自訂類別。

    tModel 金鑰名稱 金鑰值
    microsoft-com:esb:runtimeresolution:portname 連接埠名稱 NewPOService
    microsoft-com:esb:runtimeresolution:transporttype 傳輸類型 WCF-BasicHttp

在 UDDI 登錄中尋找服務

  1. 在 Internet Explorer 的 uddi Services 頁面上,按一下 [ 搜尋]。

  2. 按一下 [服務] 索引標籤。

  3. 在 [ 服務名稱] 方塊中,輸入 %PO%,然後按一下 [ 搜尋]。

  4. 在 [ 搜尋 ] 窗格的 [ 結果] 索引標籤上,按一下 [新增POService]。

    注意

    這會確認服務已成功發佈至登錄。

建立路線模型以測試 UDDI 服務發行集

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

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

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

設定路線的屬性

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

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

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

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

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

      注意

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

定義路線的結構

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

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

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

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

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

  2. 從 [工具箱] 中,將 [路線服務 ] 模型專案拖曳至設計介面。 在ItineraryService1屬性視窗中,設定下列屬性:

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

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

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

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

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

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

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

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

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

  5. 從 [工具箱] 中,將 [路線服務 ] 模型專案拖曳至設計介面。 在ItineraryService1屬性視窗中,設定下列屬性:

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

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

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

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

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

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

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

    3. 在 [ 解析程式 Moniker ] 下拉式清單中,按一下 [UDDI3]。

    4. 按一下 [ 系結] 索引鍵 屬性,然後輸入 uddi:esb:newposervicebinding。 若要尋找金鑰值,請按一下 http://localhost/ESB.CanadianServices/SubmitPOService.asmx UDDI 中的服務,然後按一下 [更多詳細資料]。

  7. 以滑鼠右鍵按一下 BindingKeySearch 解析程式,然後按一下 [ 測試解析程式組態]。

    注意

    確認 [輸出] 視窗中顯示的輸出。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    注意

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

  2. 儲存所有專案成品。

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

測試路線

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

  2. 在 [路線測試用戶端] 的 [ Web 服務選項 ] 群組中,清除 [ 使用 WCF 服務 ] 方塊,然後選取 [ 雙向服務 ] 核取方塊。

  3. 按一下 [ 載入路線] 按鈕。

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

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

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

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

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

  9. 確認正確的回應訊息會出現在Itineray 測試用戶端[結果] 文字方塊中。

其他資源

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