共用方式為


逐步解說:使用 WCF-NetTcp 配接器的自訂訊息處理

在本逐步解說中,Windows Communication Foundation (WCF) 用戶端會使用 WCF-NetTcp 配接器,將包含內嵌二進位 JPEG 影像資料的 WCF 訊息提交至 BizTalk 接收位置。 透過配接器組態中的輸入 訊息本文 設定,使用 XPath 語句 (Base64 節點編碼) 擷取二進位編碼 JPEG 影像。 XPath 處理與BizTalk Server用來處理傳入訊息的預設方法不同。 在預設方法中,配接器會取得 WCF 訊息 之 Body 元素的整個內容,然後將它提交至 BizTalk MessageBox 資料庫。 XPath 訊息處理會擷取傳入 WCF 訊息的特定部分,以建立自訂 BizTalk 訊息。 在此範例 XPath 處理中,會在傳入的 WCF 訊息中找到名為 SendPicture 的 XML 元素, (格式為 XML 格式) 。 找到該元素之後,XPath 會將元素的值擷取為二進位 Base64 編碼物件,並將該二進位值放入 BizTalk 訊息中。 訊息會發佈至 MessageBox 資料庫,然後輸出至 FILE 傳送埠,並協助傳送埠篩選訂用帳戶。 此範例中不會使用協調流程,而且所有處理都是透過使用 XPath 的 BizTalk 傳訊來完成。

WCF 配接器可用來與來自 BizTalk Server 的 WINDOWS Communication Foundation (WCF) 用戶端和 WCF 遠端服務通訊。 它可讓協調流程和架構發佈為 WCF 服務,並提供協調流程取用外部 WCF 服務的能力。 WCF-NetTcp 配接器會使用 NetTcpBinding 系結,這表示使用優化二進位訊息編碼的 TCP 傳輸。 WCF-NetTcp 配接器包含傳送介面卡和接收配接器。 該配接器可完整存取 SOAP 安全性、可靠性和交易功能。

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

  • 使用 BizTalk Server 管理主控台,匯入 MSI 檔案以建立傳送埠、接收埠和接收位置。

  • 使用 BizTalk Server 管理主控台,設定 WCF 接收位置以執行 XPath 語句,以從 WCF 訊息的SendPicture元素擷取資料。

注意

hosttrusted元素會指定是否信任與接收處理常式相關聯的主機。 在 bindings.xml 檔案中,它會設定為其預設設定 false ,因為在此範例中,我們不會 BizTalk Server Enterprise關心單一 Sign-On 服務 (SSO) 。 SSO 允許透過 BizTalk Server 傳遞使用者認證,以整合協力廠商應用程式與BizTalk Server。 設定 false 可防止 BizTalk 訊息在 SSO 處理過程中傳遞 BizTalk 服務。

必要條件

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

  • 建置元件和執行部署程式的電腦,以及執行範例的電腦都需要 Microsoft Windows Server 2008 SP2、Microsoft .NET Framework 4.5 和 Microsoft 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 開發人員中心 https://go.microsoft.com/fwlink/?LinkId=194140 下載檔案WCFAdapterWalkthroughs.exe

設定 WCFCustomMessageProcessing 應用程式和成品

  1. 在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下 [應用程式],選取 [入],然後選取[MSI 檔案]。 移至 C:\WCFCustomMessageProcessing\WCFCustomMessageProcessing.msi 檔案,然後按一下 [ 開啟]。 這會為此應用程式建立下列成品:

    • FileSP傳送埠:C:\WCFCustomMessageProcessing\Out本機檔案系統上的位置,其中 JPEG 影像資料是由 BizTalk Server 作為範例處理的最終輸出傳送。 您可以檢視 BTS 的傳送埠篩選。ReceivePortName = NetTcpRP在 [篩選準則] 下的 [FileSP 屬性] 對話方塊中設定。 篩選準則與 NetTcp 接收埠相關聯。 在接收位置在訊息上執行 XPath 處理之後,NetTcpRP 接收埠上接受的任何訊息都會傳送至 C:\WCFCustomMessageProcessing\Out 的 FileSP 傳送埠輸出位置。

    • NetTcpRP 接收埠:邏輯上包含 NetTcpRL 接收位置的埠。

    • NetTcpRL 接收位置:這會使用預設 PassThroughTransmit 管線和 WCF-NetTcp 配接器來執行 XPath 語句,以從傳入 WCF 訊息提取 JPEG 映射資料。

設定 WCFCustomMessageProcessing 應用程式的替代步驟

  • 或者,以下是在不使用 C:\WCFCustomMessageProcessing\bindings.xml 檔案的情況下設定應用程式的手動步驟。 如果先前的系結檔案匯入程式正常運作,您就不需要這麼做。 但是,閱讀它可能會增加您對 MSI 檔案運作方式的知識。

  • 建立單向接收埠 (NetTcpRP) 和接收位置 (NetTcpRL) 。

    1. 展開 WCFCustomMessageProcessing 應用程式,以滑鼠右鍵按一下 [接收埠],選取 [ 新增],然後選取 [單向接收埠]。 在 [ 接收埠屬性] 對話方塊中,輸入 NetTcpRP[名稱],然後按一下 [ 確定]。

    2. 以滑鼠右鍵按一下 NetTcpRP 接收埠,選取 [ 新增],然後選取 [ 接收位置]。 在 [ 接收位置屬性] 對話方塊中,輸入 NetTcRL[名稱]。 在 [ 傳輸] 區段中,按一下 [ 類型 ] 下拉式清單方塊,從下拉式清單中選取 [WCF-NetTcp ],然後按一下 [ 設定]。

    3. 在 [一般] 索引標籤上,于 [位址 (URI) ] 欄位中輸入net.tcp://localhost/NetTcpRL/Image

    4. 在 [ 安全性] 索引 標籤上,將 [安全性模式 ] 設定為 [無]。

    5. 在 [訊息]索引標籤上,選取[輸入 BizTalk 訊息本文] 的 [路徑] 選項,然後針對本文路徑運算式輸入 /*[local-name()="SendPicture" and namespace-uri()='http://tempuri.org/']/*[local-name()="stream"] 。 選取 [Base64 ] 作為 [節點編碼]。 Path選項設定為值,因為BizTalk Server接收的 WCF 訊息本文的格式如下:< SendPicture xmlns=「 http://tempuri.org/" ; ><資料流程 >實際基底 64 編碼的二進位影像資料< /資料流程 >< /SendPicture >

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

  • 建立單向檔案傳送埠 (FileSP) 訂閱 NetTcpRP 接收埠。

    1. 以滑鼠右鍵按一下 [ 傳送埠],選取 [ 新增],然後選取 [單向接收埠]。 選取 [靜態單向埠]。 針對名稱輸入 FileSP

    2. 在 [ 傳輸] 區段中,按一下 [ 類型 ] 下拉式清單方塊,從下拉式清單中選取 [檔案 ],然後按一下 [ 設定]。

    3. [目的地資料夾 ] 下輸入 C:\WCFCustomMessageProcessing\Out ,然後按一下 [ 確定]。

    4. 按一下 [篩選],選取 BTS.ReceivePortName == NetTcpRP ,然後按一下 [ 確定]。

設定傳送埠並執行應用程式

  1. 以滑鼠右鍵按一下 WCFCustomMessageProcessing 應用程式,然後選取 [ 啟動]。 這會登記 NetTcpRL 接收位置,並啟動 FileSP 傳送埠。

  2. 在 Visual Studio 中,從C:WCFCustomMessageProcessing\Client資料夾開啟 Client.sln 檔案。 在 方案總管中,以滑鼠右鍵按一下[用戶端] 專案,然後選取 [建置]。

  3. 在 Visual Studio 中,選取 [ 錯],然後選取 [ 啟動但不 偵錯] 以執行 Client.exe 應用程式。 命令提示字元會出現,指出影像已提交至BizTalk Server。

  4. 觀察成功 {GUID}.jpg 檔案輸出至 C:\WCFCustomMessageProcessing\Out的傳送埠檔案資料夾。這會顯示用來擷取 JPEG 檔案的應用程式處理,並將它寫出至已成功完成的 FILE 傳送埠。