共用方式為


逐步解說:使用 WCF-NetMsmq 配接器發佈 WCF 服務

注意

如需配接器的詳細資訊,請參閱BizTalk Server 中的配接器

簡介

在BizTalk Server中,協調流程可以發佈為 Windows Communication Foundation (WCF) 服務。 透過 BizTalk 接收位置,協調流程可以公開 WCF 端點,讓 WCF 用戶端可以呼叫它。 BizTalk WCF 服務發佈精靈提供簡單的方式,將協調流程公開為接收位置。

WCF-NetMsmq 配接器會使用 NetMsmqBinding 系結來支援使用 Microsoft Message Queuing (也稱為 MSMQ) 做為其基礎傳輸。 WCF 服務的用戶端會使用設定為使用 WCF-NetMSMQ 配接器的接收位置,將 WCF 訊息傳送至 MSMQ 佇列。 配接器會從 MSMQ 佇列中挑選 WCF 訊息、將它們轉換成BizTalk Server格式,並將其寫入至 BizTalk Server MessageBox 資料庫。

本逐步解說示範 WCF 用戶端應用程式如何使用 WCF-NetMsmq 配接器,透過 MSMQ 訊息佇列與裝載在 .NET 主控台應用程式中的 WCF 服務通訊。 它示範如何使用 BizTalk WCF 服務發佈精靈來發佈接收位置的中繼資料。 它也會示範如何設定 Web 應用程式來支援發佈中繼資料。

完成此逐步解說之後,您將會瞭解如何執行下列工作:

  • 從 Visual Studio 內,使用Deploy命令將 BizTalk 元件部署至本機實例BizTalk Server。 這樣會建立有組件填入其中的 BizTalk 應用程式。 BizTalk 組件包含資源資訊;例如,要在 BizTalk 方案中使用的協調流程、管線、結構描述和對應。

  • 從 BizTalk Server 管理主控台中,設定 WCF-NetMsmq 接收位置來裝載已發佈的 WCF 服務。

  • BizTalk WCF 服務發佈精靈中,建立 Web 應用程式來發佈現有接收位置的中繼資料。 用戶端會使用此中繼資料,將訊息提交至接收位置。

必要條件

若要執行此範例中的步驟,請確定您的環境會安裝下列必要條件:

  • 建置元件並執行部署程式的電腦,以及執行範例的電腦都需要 Microsoft Windows Server、.NET Framework和BizTalk Server。

  • 用來建置元件和執行部署程式的電腦需要 Microsoft Visual Studio。

  • 執行範例的電腦需要 WCF 配接器和 WCF 管理工具。 這些是安裝 Microsoft BizTalk Server期間安裝的選項。

  • 在您用來執行系統管理工作的電腦上,您必須以屬於 BizTalk Server Administrators 群組成員的使用者帳戶身分執行,以在 BizTalk Server 管理主控台內設定BizTalk Server應用程式設定。 此使用者帳戶也必須是本機 Administrators 群組的成員,才能部署應用程式、管理主機實例,以及其他可能需要的工作。

  • 在任何需要 WCF 功能的電腦上,完成 的 WCF 範例 https://go.microsoft.com/fwlink/?LinkId=135510 的一次性安裝程式。

  • 在執行範例並將系結或 .msi 檔案匯入BizTalk Server的電腦上,請確定主機不是受信任的主機,否則匯入將會失敗。

  • 您必須下載逐步解說程式碼,並將其解壓縮到您的電腦。 本逐步解說是整個 WCF 配接器逐步解說套件的一部分。 您可以從 BizTalk Server 開發人員中心下載WCFAdapterWalkthroughs.exe檔案https://go.microsoft.com/fwlink/?LinkId=194140

建置和部署 BizTalk 解決方案 BizTalkApp

  1. 將 WCFNetMsmqAdapterPublishing.exe 擷取至 C:\WCFNetMsmqAdapterPublishing

  2. 在 Visual Studio 中,開啟 WCFNetMsmqAdapterPublishing.sln 檔案。

  3. 在方案總管中,展開[BizTalkApp],然後開啟[OrderProcess.odx] 以檢閱。 範例協調流程會接收訂單要求訊息,而且只會傳回訂單回應訊息。

  4. 因為 BizTalkApp 元件必須安裝在 GAC 中,所以需要強名稱金鑰檔案才能完成部署程式。 以滑鼠右鍵按一下 BizTalkApp 專案,然後按一下 [ 屬性]。 在 [ 屬性] 頁面上,按一下 [ 簽署],然後選取 [ 簽署元件]。 按一下 [選擇強式名稱金鑰檔案] 下拉式清單中的向下箭號,按一下 [< 新增 >],然後在[金鑰檔案名] 文字方塊中輸入 keyfile.snk 。 取消核 取 [使用密碼保護我的金鑰檔案],然後按一下 [ 確定]。

  5. 按一下 [部署] 索引標籤,如果您針對LOCALHOST以外的 BizTalk 管理資料庫使用不同的資料庫伺服器,請變更Server屬性。 確定 BizTalk 應用程式 值已設定為 WCFNetMsmqAdapterPublishing。 確定 [安裝至全域組件快取 ] 設定為 True

  6. 在 方案總管中,以滑鼠右鍵按一下BizTalkApp專案,然後按一下 [重建]。

  7. 在方案總管中,以滑鼠右鍵按一下[BizTalkApp],然後按一下 [部署]。

設定應用程式

  1. 請確定電腦上已安裝 MICROSOFT Message Queuing (MSMQ) 元件,如下所示:

    1. 按一下[開始],以滑鼠右鍵按一下 [電腦],然後按一下 [管理] 以開啟伺服器管理員

    2. 展開 [ 功能] 節點。 如果未安裝 訊息佇列 ,請以滑鼠右鍵按一下 [功能],然後選取 [ 新增功能]。 核取 [訊息佇列],按 [ 下一步],然後按一下 [ 安裝 ] 在該系統上安裝 MSMQ。

  2. 請確定您的電腦上已啟動 MSMQ 訊息佇列服務,以便 WCF-NetMsmq 配接器使用,如下所示:

    1. 按一下 [開始]、指向 [系統管理工具],然後按一下 [服務]。

    2. [服務] 中,確定訊息佇列服務的狀態[已啟動]。 如果未啟動服務,請以滑鼠右鍵按一下 [訊息佇列],然後按一下 [ 啟動]。

  3. 建立接收位置使用的目標佇列,WCF-NetMsmq 配接器會從用戶端挑選傳入的 WCF 訊息。

    1. 按一下 [開始],指向 [ 系統管理工具],然後按一下 [ 電腦管理]。

    2. [電腦管理] 中,依序展開 [服務和應用程式]、[ 訊息佇列]、以滑鼠右鍵按一下 [ 私人佇列]、指向 [ 新增],然後按一下 [ 私人佇列]。

    3. 在 [ 新增私人佇列 ] 對話方塊中,輸入 WCFNetMsmqAdapterPublishing [ 佇列名稱 ] 文字方塊中,選取 [ 交易式 ] 核取方塊,然後按一下 [ 確定]。

  4. 建立範例應用程式的 WCF-NetMsmq 接收位置,如下所示:

    1. 按一下[開始],指向[所有程式],指向[Microsoft BizTalk Server 20xx],然後按一下[BizTalk Server管理]。

    2. 在 BizTalk Server 管理主控台中,依序展開[BizTalk 群組]、[應用程式]、[WCFNetMsmqAdapterPublishing]、以滑鼠右鍵按一下 [接收埠]、指向 [新增],然後按一下[單向接收埠]。

    3. 在 [ 接收埠屬性 ] 對話方塊的 [ 名稱 ] 文字方塊中,輸入 WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder ,然後按一下 [ 確定]。

    4. 在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder,指向 [新增],然後按一下 [接收位置]。

    5. 在 [ 接收位置屬性 ] 對話方塊的 [ 名稱 ] 文字方塊中,輸入 WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder.NetMsmq

    6. 在 [接收位置屬性] 對話方塊的[類型] 旁的 [傳輸] 區段中,從下拉式清單中選取[WCF-NetMsmq],然後按一下 [設定]。

    7. [WCF-NetMsmq 傳輸屬性 ] 對話方塊的 [ 一般 ] 索引標籤上,于 [ 位址 (URI) ] 文字方塊中,輸入 net.msmq://localhost/private/WCFNetMsmqAdapterPublishing

    8. [WCF-NetMsmq 傳輸屬性 ] 對話方塊的 [ 結] 索引標籤上,確定已選取 [交易式] 核取方塊。

      注意

      因為您建立的目標佇列為交易式佇列,所以必須選取此核取方塊。 如果未選取此方塊,將不會啟用接收位置,因為接收位置的交易需求與基礎 MSMQ 佇列的交易需求之間會有差異。

    9. [WCF-NetMsmq 傳輸屬性] 對話方塊的 [安全性] 索引標籤上,從 [安全性模式] 下拉式清單中選取 []。

      注意

      本逐步解說假設 MSMQ 已安裝在電腦上停用 Active Directory 整合。 啟用 Active Directory 整合時,可以使用MSMQ 驗證模式屬性的預設值WindowsDomain

    10. 在 [ 接收位置屬性 ] 對話方塊中,按一下 [ 確定]。

  5. 建立範例應用程式的 FILE 傳送埠。 此埠可用來從服務的基礎協調流程,從採購單路由回應。

    1. 在 BizTalk Server 管理主控台中,展開[WCFNetMsmqAdapterPublishing],以滑鼠右鍵按一下 [傳送埠],指向 [新增],然後按一下 [靜態單向傳送埠]。

    2. 在 [ 傳送埠屬性 ] 對話方塊的 [ 名稱 ] 文字方塊中,輸入 WCFNetMsmqAdapterPublishing.SendPurchaseOrder.File

    3. 在 [傳送埠屬性] 對話方塊的[類型] 旁的 [傳輸] 區段中,從下拉式清單中選取 [檔案],然後按一下 [設定]。

    4. 在 [ 檔案傳輸屬性] 對話方塊的 [ 一般 ] 索引標籤的 [ 目的地資料夾 ] 文字方塊中,輸入 C:\WCFNetMsmqAdapterPublishing\Out ,然後按一下 [ 確定]。

    5. 在 [ 傳送埠內容 ] 對話方塊中,按一下 [ 確定]。

  6. 指定範例應用程式的主控件名稱和繫結,如下所示:

    1. 在 BizTalk Server 管理主控台中,依序展開[WCFNetMsmqAdapterPublishing]、[協調流程]、以滑鼠右鍵按一下範例協調流程、按一下 [屬性]、[系結],然後將[主機] 設定為[BizTalkServerApplication] 或其他適當的主機。

    2. 在 [協調流程屬性] 對話方塊中,從PurchaseOrderRequestPort[接收埠] 下拉式清單中選取[WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder]。

    3. 在 [協調流程屬性] 對話方塊中,從PurchaseOrderResponsePort[傳送埠/傳送埠群組] 下拉式清單中選取[WCFNetMsmqAdapterPublishing.SendPurchaseOrder.File]。

    4. 在 [ 協調流程屬性 ] 對話方塊中,按一下 [ 確定 ] 以儲存組態。

發佈 WCF-NetMsmq 接收位置的中繼資料

  1. 按一下[開始],指向[所有程式],指向[Microsoft BizTalk Server 20xx],然後按一下 [BizTalk WCF 服務發佈精靈]。

  2. 在 [ 歡迎使用 BizTalk WCF 服務發佈精靈 ] 頁面上,按 [ 下一步]。

  3. [WCF 服務類型] 頁面上,選取 [ 僅限中繼資料端點 (MEX) ] 核取方塊,以發佈 WCFNetMsmq 接收位置的中繼資料。 從 [發佈接收位置的中繼資料] 下拉式清單中選取[WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder.NetMsmq],然後按 [下一步]。

  4. 在 [ 建立 WCF 服務 ] 頁面上,選取 [將 BizTalk 協調流程發佈為 WCF 服務],然後按 [ 下一步]。

  5. [BizTalk 元件 ] 頁面的 [BizTalk 元件檔案] (*.dll) 文字方塊中,按一下 [ 流覽 ] 流覽至 C:\WCFNetMsmqAdapterPublishing\BizTalkApp\bin\Development 資料夾,按兩下包含要發行之範例協調流程的元件,然後按 [ 下一步]。

  6. 在 [ 協調流程和埠 ] 頁面上,確定頁面上已選取 [ 埠:PurchaseOrderRequestPort ] 節點,然後按 [ 下一步]。

    接收埠的 MEX 將會發佈,並由用戶端用來將訊息提交至接收位置。

  7. [WCF 服務屬性] 頁面的 [ WCF 服務目標命名空間 ] 文字方塊中,輸入您想要此已發佈 WCF 服務使用的 URI,然後按 [ 下一步]。 在此逐步解說中,保留預設 URI : http://tempuri.org/

  8. [WCF 服務位置] 頁面上,執行下列動作來指定要建立的 WCF 服務位置,然後按 [ 下一步]:

    1. 在 [ 位置] 文字方塊中,輸入 WCF 服務執行所在的 Web 目錄名稱,或按一下 [ 流覽 ] 並選取 Web 目錄。 在本逐步解說中,請將 [位置] 文字方塊中的預設 http://localhost/< 位置保留 (BizTalk 元件名稱 >) 。

    2. 選取 [ 允許匿名存取 WCF 服務 ] 選項。 這個選項會新增已建立之虛擬目錄的匿名存取。 此選項必須加以選取,才可允許精靈將為該 Web 應用程式建立的匿名驗證。

  9. [WCF 服務摘要] 頁面上,按一下 [ 建立 ] 以建立 WCF 服務。

  10. 在 [ 正在完成 BizTalk WCF 服務發佈精靈 ] 頁面上,按一下 [ 完成]。

設定裝載已發佈中繼資料服務的 Web 應用程式

  1. 開啟命令提示字元,移至BizTalk WCF 服務發佈精靈建立 WCF 服務的C:\inetpub\wwwroot\Microsoft.Samples.BizTalk.WCF.NetMsmqPublishing.BizTalkApp資料夾。 使用記事本開啟 Web.config 檔案。

  2. 在 [記事本] 中,在system.web > 元素內 <新增下列程式程式碼:

    <trust level="Full" originUrl="" />
    

    注意

    這個設定是選擇性的。 它會將裝載已發佈 WCF 服務存取權的 ASP.NET 應用程式授與受作業系統安全性約束的任何資源。

  3. 使用 Internet Explorer 來測試發佈的 WCF 服務,如下所示:

    1. 按一下 [開始],指向 [ 系統管理員工具],然後按一下 [ Internet Information Services (IIS) Manager]。

    2. 在 IIS 管理員中建立具有正確 BizTalk 資料庫權限的應用程式集區,以供此服務在其中執行。 以滑鼠右鍵按一下 [應用程式集區],按一下 [ 新增應用程式集區],輸入應用程式集區的名稱,然後按一下 [ 確定]。

    3. 展開 [應用程式集區],以滑鼠右鍵按一下您剛才建立的應用程式集區,然後選取 [ 進階設定]。 在[處理模型]區段下,輸入可存取 [分識別] 欄位下BizTalk Server資料庫的帳戶。

    4. 依序展開 [網站]、[ 預設網站] 和 [BizTalk WCF 服務發佈精靈] 建立的 Web 應用程式。

    5. 在 IIS 管理員的中央窗格中,按一下 [ 內容檢視 ] 以顯示應用程式的檔案。

    6. 以滑鼠右鍵按一下BizTalk WCF 服務發佈精靈所建立的 Microsoft_Samples_BizTalk_WCF_NetMsmqPublishing_BizTalkApp_OrderProcess_PurchaseOrderRequestPort.svc服務檔案,然後按一下 [流覽]。 這會開啟 Internet Explorer 以顯示 BizTalkServerInstance 服務 頁面,指出 WCF 服務的實例正在執行。 此頁面會顯示完整的 WSDL 位址,您可以複製並搭配服務中繼資料工具 (svcutil.exe) ,或從 Visual Studio 內擷取 Proxy 程式碼和組態檔,以用來建立服務的用戶端應用程式。

    7. 從 Internet Explorer 顯示在上一個步驟中的 BizTalkServerInstance 服務 頁面,將具有完整 WSDL 位址的命令列複製到剪貼簿。

      svcutil.exe http://localhost/Microsoft.Samples.BizTalk.WCF.NetMsmqPublishing.BizTalkApp/Microsoft_Samples_BizTalk_WCF_NetMsmqPublishing_BizTalkApp_OrderProcess_PurchaseOrderRequestPort.svc?wsdl

建置用戶端應用程式

  1. 以系統管理員身分開啟 Visual Studio 命令提示字元,然後移至 C:\WCFNetMsmqAdapterPublishing\WCFClient 資料夾。 這是您將放置 Proxy 類別和應用程式組態檔的位置。

  2. 貼上整個 svcutil.exe 命令列,其中包含您在上一個程式中複製的完整 WSDL 位址,然後按 ENTER 鍵。 這會建立 Proxy 類別 、BizTalkServiceInstance.cs和應用程式組態檔, output.config。讓命令提示字元視窗保持開啟,以在最後一節期間使用。

  3. 在 Visual Studio 的 [方案總管] 中,以滑鼠右鍵按一下[WCFClient],指向 [新增],然後按一下 [現有專案]。

  4. 在 [新增現有專案] 對話方塊中,流覽至WCFClient資料夾,選取[類型檔案] 下拉式清單中的 [所有檔案] (*.*) ,選取[BizTalkServiceInstance.cs] 並output.config檔案,然後按一下 [新增]。

  5. 展開 [WCFClient],以滑鼠右鍵按一下 [output.config],按一下 [ 重新命名],然後輸入 App.config 作為新名稱。

  6. 按兩下 Program.cs 以檢閱如何使用 svcutil.exe 所產生的 Proxy 類別呼叫已發佈的 WCF 服務。

  7. 展開 [參考],然後確定 WCFClient 專案 已System.ServiceModel.dll 參考。

  8. 以滑鼠右鍵按一下 WCFClient 專案,然後選取 [ 建置]。 讓 Visual Studio 保持開啟,並移至下一節。

使用 WCF-NetMsmq 配接器測試範例解決方案

  1. 在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下WCFNetMsmqAdapterPublishing應用程式,然後按一下 [啟動]。 在 [ 開始] 對話方塊中,按一下 [ 啟動]。

  2. 在 BizTalk Server 管理主控台中,依序展開 [平臺設定]、[主機實例]、以滑鼠右鍵按一下[BizTalkServerApplication] 或其他適當的主機實例,然後按一下 [重新開機]。 雖然不需要此步驟,但最好確保範例可正確運作到這一點。

  3. 在 Visual Studio 的 [ 錯] 功能表上,按一下 [ 啟動但不 偵錯] 以執行 WCFClient 應用程式。 這會將範例訊息傳送至 WCF-NetMsmq 接收位置。 您會在下方看到輸出訊息,指出已傳送訊息。

    在 WCF-NetMsmq 接收位置上呼叫 Submit 作業

    按任意鍵以關閉 WCF 用戶端應用程式

  4. 按任意鍵以關閉 WCFClient 應用程式。

  5. 在 Visual Studio 命令提示字元中,移至 C:\WCFNetMsmqAdapterPublishing\Out 資料夾,然後確定 WCFClient 應用程式傳回的回應訊息存在。

  6. 按兩下 {GUID}.xml 檔案,以在 Internet Explorer 中開啟檔案,並檢視服務所處理的 OrderID 值。

另請參閱

設定 WCF-NetMsmq 接收位置WCF 配接器逐步解說WCF 接收配接器的發行服務中繼資料