逐步解說:使用 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 應用程式和成品
在 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) 。
展開 WCFCustomMessageProcessing 應用程式,以滑鼠右鍵按一下 [接收埠],選取 [ 新增],然後選取 [單向接收埠]。 在 [ 接收埠屬性] 對話方塊中,輸入
NetTcpRP
[名稱],然後按一下 [ 確定]。以滑鼠右鍵按一下 NetTcpRP 接收埠,選取 [ 新增],然後選取 [ 接收位置]。 在 [ 接收位置屬性] 對話方塊中,輸入
NetTcRL
[名稱]。 在 [ 傳輸] 區段中,按一下 [ 類型 ] 下拉式清單方塊,從下拉式清單中選取 [WCF-NetTcp ],然後按一下 [ 設定]。在 [一般] 索引標籤上,于 [位址 (URI) ] 欄位中輸入net.tcp://localhost/NetTcpRL/Image。
在 [ 安全性] 索引 標籤上,將 [安全性模式 ] 設定為 [無]。
在 [訊息]索引標籤上,選取[輸入 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 >在 [ 接收位置屬性] 對話方塊中,按一下 [確定]。
建立單向檔案傳送埠 (FileSP) 訂閱 NetTcpRP 接收埠。
以滑鼠右鍵按一下 [ 傳送埠],選取 [ 新增],然後選取 [單向接收埠]。 選取 [靜態單向埠]。 針對名稱輸入
FileSP
。在 [ 傳輸] 區段中,按一下 [ 類型 ] 下拉式清單方塊,從下拉式清單中選取 [檔案 ],然後按一下 [ 設定]。
在 [目的地資料夾 ] 下輸入
C:\WCFCustomMessageProcessing\Out
,然後按一下 [ 確定]。按一下 [篩選],選取
BTS.ReceivePortName == NetTcpRP
,然後按一下 [ 確定]。
設定傳送埠並執行應用程式
以滑鼠右鍵按一下 WCFCustomMessageProcessing 應用程式,然後選取 [ 啟動]。 這會登記 NetTcpRL 接收位置,並啟動 FileSP 傳送埠。
在 Visual Studio 中,從C:WCFCustomMessageProcessing\Client資料夾開啟
Client.sln
檔案。 在 方案總管中,以滑鼠右鍵按一下[用戶端] 專案,然後選取 [建置]。在 Visual Studio 中,選取 [ 偵錯],然後選取 [ 啟動但不 偵錯] 以執行 Client.exe 應用程式。 命令提示字元會出現,指出影像已提交至BizTalk Server。
觀察成功 {GUID}.jpg 檔案輸出至 C:\WCFCustomMessageProcessing\Out的傳送埠檔案資料夾。這會顯示用來擷取 JPEG 檔案的應用程式處理,並將它寫出至已成功完成的 FILE 傳送埠。