共用方式為


在 BizTalk Server 上安裝和使用邏輯應用程式配接器

BizTalk Server使用 Logic Apps 配接器從 Azure 邏輯應用程式接收訊息,或將訊息傳送至 Azure 邏輯應用程式。

在 Azure 中,我們會建立邏輯應用程式。 此邏輯應用程式會使用 BizTalk 連接器連線到您在BizTalk Server上建立的接收位置。 本主題假設您已熟悉 Azure Logic Apps。 如果您不熟悉邏輯應用程式,建議您 深入瞭解它們,甚至 建立您自己的邏輯應用程式

在本主題中,我們會列出從邏輯應用程式接收BizTalk Server訊息的步驟。 另一種方式是,邏輯應用程式會將訊息傳送至BizTalk Server。 接收端會使用 IIS 中的應用程式來處理與 Azure 服務的通訊。 如果BizTalk Server是內部部署,您也會在BizTalk Server上安裝資料閘道,並在 Azure 中建立閘道。

如果BizTalk Server安裝在 Azure 虛擬機器 (VM) ,您可以選擇將 VM 公開為 HTTP 端點, (您取得 URL) ,或不要將其公開為 HTTP 端點。 如果您公開它,則不需要使用閘道。 您可以在邏輯應用程式中的 BizTalk 連接器中輸入 URL。 如果您未公開 VM (沒有 URL) ,則需要使用閘道。 本主題列出這些步驟。

我們也示範如何將訊息從 BizTalk Server 傳送至 Azure 邏輯應用程式。 另一種方式是,邏輯應用程式會從BizTalk Server接收訊息。 傳送端相當簡單,如本主題所示。

使用本主題來建立接收位置和使用 Logic Apps 配接器的傳送埠。 您可以在已加入) BizTalk Server網域的內部部署 (或執行BizTalk Server的 Azure 虛擬機器中使用 LogicApp 配接器。

規格需求

  • 用來登入Azure 入口網站的 Azure 訂用帳戶,並建立邏輯應用程式。
  • 選擇性。 若要將測試訊息傳送至邏輯應用程式,請安裝 HTTP 測試控管,例如 FiddlerPostman。 如果您使用另一種方法將訊息傳送至邏輯應用程式,就不需要使用這些工具。

安裝邏輯應用程式配接器

BizTalk Server 2020 和更新版本

從 BizTalk Server 2020 開始,邏輯應用程式配接器隨附于安裝BizTalk Server。

BizTalk Server 2016

  1. 在您的BizTalk Server上,下載並安裝邏輯應用程式配接器:
  2. 按兩下 LogicApp Adapter.msi 進行安裝。 接受授權合約,並 安裝
  3. 完成 安裝,然後重新開機 BizTalkServerApplicationBizTalkServerIsolatedHost 主機實例。

安裝之後,您有下列專案:

  • LogicApp 配接器會新增至 BizTalk 系統管理。

  • 傳送處理常式已建立,並使用 BizTalkServerApplication 主機。

  • 接收處理常式會建立為 WCF 服務,並使用 BizTalkServerIsolatedHost 主機。

  • 資料夾 LogicApp Adapter 會在 BizTalk 安裝目錄內建立,並包含兩個服務:Management 和 ReceiveService。

    管理是由邏輯應用程式中的 BizTalk 連接器用來連線到使用資料閘道BizTalk Server。 此管理服務允許BizTalk Server使用資料閘道從 Azure 邏輯應用程式接收訊息。 此服務僅適用于 BizTalk 的接收端。 傳送端不會使用它。

    當您輸入接收位置時,BizTalk 連接器會在邏輯應用程式中使用 ReceiveServiceReceiveService負責從邏輯應用程式傳送訊息。 此服務僅適用于 BizTalk 的接收端。 傳送端不會使用它。

從邏輯應用程式接收訊息

有一些步驟牽涉到BizTalk Server從邏輯應用程式接收訊息。 此節列出這些步驟。 Azure 中的使用者介面可能會變更,因此某些步驟可能未完全列示。

必要條件

搭配使用 NullAdapter 和邏輯應用程式配接器 - 僅限 BizTalk Server 2016

如果您安裝邏輯應用程式配接器和 NullAdapter,您可能會看到下列錯誤:

Another adapter with the same OutboundEngineCLSID value already exists

Adapter 類別的 GUID 與 Logic App Adapter 和 NullAdapter 相同。 如果需要這兩個介面卡,您可以:

  1. GitHub 上下載 NullAdapter 原始程式碼
  2. 更新 NullSendAdapter.cs 類別中的 GUID。
  3. 更新 NullAdapter.reg 檔案中的 OutboundEngineCLSID 值。
  4. 建置並部署 NullAdapter。

步驟 1:建立 IIS 應用程式

IIS 應用程式會使用 Management 和 ReceiveService 服務。

您可以使用新的應用程式集區或現有的應用程式集區來執行 IIS 應用程式。 AppPool 的身分識別需要與執行 BizTalk 服務的帳戶相同的群組成員資格,例如 BizTalk 應用程式使用者和 BizTalk 隔離主機使用者群組。

提示

如果您建立新的應用程式集區,請保留預設的 .NET CLR 版本和受控管線。 請記住,選擇具有與 BizTalk 服務帳戶相同 BizTalk 群組成員資格的身分識別) (進階設定。

建立管理 IIS 應用程式

BizTalk 連接器會在邏輯應用程式中 (使用此 IIS 應用程式的 URL) ,以在BizTalk Server上使用資料閘道。

BizTalk Server 2020 和更新版本
  1. 使用 BizTalk 設定精靈設定 REST API。 如需設定的說明,請參閱設定 指南。 如需 REST API 的詳細資訊,請參閱 BizTalk REST API 參考
  2. 開啟網頁瀏覽器,然後前往 http://localhost/BizTalkManagementService/Schemas。 顯示架構的清單,或系統會提示您開啟/儲存 schemas.json 。 實際結果取決於您的網頁瀏覽器。 如果兩者都未發生,請檢查您的 REST API 組態。
BizTalk Server 2016
  1. 開啟 [Internet Information Services (IIS) 管理員]。

  2. 以滑鼠右鍵按一下 [預設網站],然後 [新增應用程式]。 在此新應用程式中:

    1. 輸入應用程式的 別名 (名稱) ,例如 IISLogicApp
    2. 選取 應用程式集區。
    3. [實體路徑 ] 設定為 C:\Program Files (x86)\Microsoft BizTalk Server 2016\LogicApp Adapter\Management
    4. 測試設定 以確認應用程式集區身分識別通過驗證和授權測試。
  3. 選取 [ 確定 ] 以儲存變更。

  4. 開啟網頁瀏覽器,然後移至 http://localhost/YourApplicationAlias/schemas?api-version=2016-10-26 ,例如 http://localhost/IISLogicApp/Schemas?api-version=2016-10-26 。 顯示架構的清單,或系統會提示您開啟/儲存 schemas.json 。 實際結果取決於您的網頁瀏覽器。 如果兩者都未發生,則您的 AppPool 身分識別可能遺漏 BizTalk 群組的成員資格。

建立 BizTalk ReceiveService IIS 應用程式

當您選擇接收位置時,BizTalk 連接器會在邏輯應用程式中 (使用此 IIS 應用程式的 URL) 。

  1. 開啟 [Internet Information Services (IIS) 管理員]。

  2. 以滑鼠右鍵按一下 [預設網站],然後 [新增應用程式]。 在此新應用程式中:

    1. 輸入應用程式的 別名 (名稱) ,例如 ReceiveWCFService

    2. 選取 與先前 IIS 應用程式相同的應用程式集區。

    3. 實體路徑 設定為:

      • BizTalk Server 2020: C:\Program Files (x86)\Microsoft BizTalk Server\LogicApp Adapter\ReceiveService
      • BizTalk Server 2016: C:\Program Files (x86)\Microsoft BizTalk Server 2016\LogicApp Adapter\ReceiveService
    4. 測試設定 以確認應用程式集區身分識別通過驗證和授權測試。

  3. 選取 [ 確定 ] 以儲存變更。

步驟 2:建立邏輯應用程式

  1. Azure 入口網站中,建立新的邏輯應用程式。

  2. 新增 [ 收到 HTTP 要求時 ] 觸發程式。

  3. 新增BizTalk Server - 從 JSON 動作準備訊息

  4. 選擇性選取 [透過內部部署資料閘道連線],然後輸入下列專案:

    屬性 描述
    BizTalk Server URL 在 IIS 應用程式 URL 中輸入 BizTalk 管理的完整功能變數名稱 (FQDN) 。 例如,輸入 http://BizTalkServerName.corp.contoso.com/IISLogicApp/
    驗證類型 選取 [Windows]。
    使用者名稱 輸入 IIS 應用程式集區的身分識別。
    密碼 輸入 IIS 應用程式集區的密碼。
    閘道 選取您建立的閘道。

    提示

    請記住,只有在下列條件時,才需要資料閘道:

    • 您使用內部部署BizTalk Server
    • 您使用的是BizTalk Server Azure 虛擬機器,且VM 不會公開為 HTTP 端點, (沒有 URL)
  5. 選取 [建立] 。

  6. 設定動作。 針對 [本文],選取 HTTP 主體輸出。 針對 [架構],選取您想要使用的架構。

    注意

    此步驟假設您已熟悉 BizTalk 中的架構,並瞭解您想要的架構。 如果您不確定,請部署 HelloWorld SDK 範例、更新其成品以使用邏輯應用程式配接器,並使用其架構和範例訊息。

  7. 新增步驟,然後選取BizTalk Server - 傳送訊息動作。 針對 [接收位置],從下拉式清單中選取 URL,或輸入 ReceiveService IIS 應用程式 URL (FQDN) 的完整功能變數名稱。 例如,輸入 http://BizTalkServerName.corp.contoso.com/ReceiveWCFService/Service1.svc

    提示

    當您建立接收位置時,此確切 URL 也會在接收位置傳輸屬性中輸入,作為 [ 公用位址 ] ([一般] 索引標籤) 。

    針對[本文],選取上一個BizTalk Server動作的主體輸出。

  8. [儲存] 變更。

當您儲存時,HTTP 要求觸發程式會自動建立 URL。 複製此 URL。 您需要在 步驟 4:傳送 本文 (訊息) 。

步驟 3:建立接收埠和接收位置

注意

您可以部署 HelloWorld SDK 範例,而不是建立您自己的接收埠和接收位置。 更新成品以使用 Logic Apps 配接器。

本節列出建立您自己的成品的步驟。

  1. 在 [BizTalk Server系統管理] 中,依序展開[BizTalk Server系統管理]、[BizTalk 群組]、[應用程式] 和 [您要執行接收位置的應用程式]。 例如,展開 [BizTalk 應用程式 1]。

  2. 以滑鼠右鍵按一下 [接收埠],選取 [ 新增],然後選取 [單向接收埠]。

  3. 在 [接收埠] 屬性中,輸入下列專案:

    使用 作法
    名稱 輸入接收埠的名稱。 例如,輸入 LAReceivePort
    驗證 選項:
    • 無驗證:預設值。 停用驗證。
    • 如果驗證失敗,請卸載訊息:啟用驗證,但卸載未驗證的訊息。
    • 驗證失敗時保留訊息:按一下此選項以啟用驗證並保留未經驗證的訊息。
    啟用失敗訊息的路由 將無法處理的任何訊息路由傳送至訂閱應用程式 (,例如另一個接收埠或協調流程排程) 。 取消核取此選項以暫停失敗的訊息,並在 NACK) 產生負 (通知。 預設值為清除核取方塊。 如需詳細資訊,請參閱 如何啟用接收埠之失敗訊息的路由
  4. 選取 [接收位置],然後選取 [ 新增]。

  5. 輸入接收位置的 [名稱 ]。 例如,輸入 LAReceiveLoc

  6. 針對 [類型],從清單中選取 LogicApp ,然後選取 [ 設定] 按鈕

  7. 在 [ 一般 ] 索引標籤中,設定邏輯應用程式的端點位址:

    使用 作法
    位址 (URI) 必要。 輸入 BizTalk ReceiveService IIS 應用程式 URL (/YourIISApp2Name/Service1.svc) 。 例如,輸入 /ReceiveWCFService/Service1.svc
    公用位址 必要。 輸入 http://<your fully qualified machine name>/YourIISApp2Name/Service1.svc。 例如,輸入 http://btsProd.northamerica.corp.contoso.com/ReceiveWCFService/Service1.svc

    此確切 URL 也會列在接收位置的邏輯應用程式中。
  8. 選擇項。 在 [ 系結] 索引標籤中,設定基礎WCF-WebHttp系結的任何逾時和編碼相關屬性。 處理大型訊息時,這些屬性很有説明。

    使用 作法
    開啟逾時 輸入通道開啟作業完成所需的時間間隔。 這個值應大於或等於 System.TimeSpan.Zero。

    預設值:00:01:00
    最大值:23:59:59
    傳送逾時 輸入傳送作業完成所需的時間間隔。 這個值應大於或等於 System.TimeSpan.Zero。 如果您使用要求-回應接收埠,此值會指定整個互動完成的時間範圍,即使用戶端傳回大型訊息也一樣。

    預設值:00:01:00
    最大值:23:59:59
    關閉逾時 輸入通道關閉作業完成所需的時間間隔。 這個值應大於或等於 System.TimeSpan.Zero。

    預設值:00:01:00
    最大值:23:59:59
    接收訊息大小上限 (以位元組為單位) 輸入要透過網路接收的訊息大小上限,以位元組為單位。包括標頭的訊息。 訊息的大小會系結為每個訊息配置的記憶體數量。 您可以使用這個屬性來限制遭受拒絕服務 (DoS) 攻擊的風險程度。

    預設值:65536
    最大值:2147483647
    同時呼叫數目上限 輸入單一服務實例的並行呼叫數目。 超出上限的呼叫將排入佇列。 將這個值設定為 0 相當於設定為 Int32.MaxValue。

    預設值為 200。
  9. 選擇項。 在 [ 安全性] 索引 標籤中,設定任何安全性屬性。 針對開發目的,您可以選擇 [無]:

    使用 作法
    安全性模式 選項:

    • 無:傳輸期間不會維護訊息的安全。
    • 傳輸:使用 HTTPS 傳輸來提供安全性。 使用 HTTPS 來維護 SOAP 訊息的安全。 若要使用此模式,您必須在 Internet Information Services (IIS) 中設定安全通訊端層 (SSL) 。
    • TransportCredentialOnly:預設值。
    傳輸用戶端認證類型 使用用戶端驗證時,請選擇認證類型。 選項:

    • None:傳輸層級上沒有任何驗證。
    • 基本:使用基本驗證透過網路以純文字傳送使用者名稱和密碼。 您必須建立對應到認證的網域或本機使用者帳戶。
    • 摘要:使用摘要式驗證透過網路將密碼傳送為雜湊值。 僅適用于執行 Windows Server 作業系統驗證之網域控制站的網域。 您必須建立對應到用戶端認證的網域或本機使用者帳戶。
    • Ntlm:預設值。 用戶端會傳送認證,而不傳送密碼至這個接收位置。 您必須建立對應到用戶端認證的網域或本機使用者帳戶。
    • Windows:Windows 整合式驗證會交涉 Kerberos 或 NTLM,如果網域存在,偏好 Kerberos。 若要使用 Kerberos,請務必讓用戶端以服務主體名稱識別服務, (SPN) 。 您必須建立對應到用戶端認證的網域或本機使用者帳戶。
    • 憑證:使用用戶端憑證。 用戶端 X.509 憑證的 CA 憑證鏈結必須安裝在這部電腦的受信任根憑證授權單位憑證存放區中,讓用戶端可以向這個接收位置進行驗證。
    • InheritedFromHost
    使用單一登入
  10. 選擇項。 在 [ 訊息] 索引標籤中,使用 [輸出 HTTP 標頭 ] 屬性來新增任何自訂標頭,並使用其他屬性來協助處理錯誤:

    使用 作法
    輸出 HTTP 標頭 輸入您想要在回應訊息上戳記的任何 HTTP 標頭。
    失敗時停用位置 如果輸入處理因接收管線失敗或路由失敗而失敗,請停用接收位置。 預設值為未核取。
    失敗時擱置的要求訊息 如果輸入處理因接收管線失敗或路由失敗而失敗,請暫停要求訊息。 預設值為未核取。
    錯誤中包含例外狀況詳細資料 發生錯誤時,傳回任何 SOAP 錯誤以協助偵錯。 預設值為未核取。

管理接收位置 描述其他屬性。

步驟 4:傳送訊息

  1. 開啟 Fiddler 或 Postman (或任何您偏好) 。

  2. 從邏輯應用程式貼上要求觸發程式的 URL。 您已在步驟 3 中複製此 URL。

  3. 選取 POST 作為 HTTP 動詞,並將 內容類型 標頭設定為 application/json 。 在本文中,貼上下列 JSON:

    {"hello":"world"}
    
  4. 因為這是 BizTalk 的單向呼叫,因此結果應該是 HTTP 202。 如果您使用 HelloWorld SDK 範例,請移至 BizTalk 伺服器。 傳送資料夾中可能有檔案。

將訊息傳送至邏輯應用程式

步驟 1:建立邏輯應用程式

  1. Azure 入口網站中,建立新的邏輯應用程式。

  2. 新增 [ 收到 HTTP 要求時] 觸發程式

  3. 新增Office 365 Outlook - 傳送電子郵件動作。 針對 [位址],輸入您的Office 365位址。 針對 [主旨],輸入 Sending from BizTalk 。 針對[本文],選擇 [收到 HTTP 要求時] 觸發程式的[本文輸出]。

  4. 邏輯應用程式看起來類似下列範例:

    使用 Office 365 和 Outlook 的 LogicApp 配接器範例

  5. 複製儲存邏輯應用程式時自動建立的 HTTP POST URL;在下一個步驟中,您需要此 URL。 您可能需要關閉並重新開啟邏輯應用程式,才能查看 URL。

步驟 2:建立傳送埠

若要讓BizTalk Server將訊息傳送至邏輯應用程式,邏輯應用程式必須具有手動觸發程式,例如手動 - 收到 HTTP 要求時

  1. 在 [BizTalk Server系統管理] 中,依序展開[BizTalk Server管理]、[BizTalk 群組]、[應用程式] 和 [應用程式] ,然後展開您要執行傳送埠的應用程式。 例如,展開 [BizTalk 應用程式 1]。

  2. 以滑鼠右鍵按一下 [ 傳送埠],選取 [ 新增],然後選取 [ 靜態單向傳送埠]。

  3. 輸入傳送埠的 [名稱 ]。 例如,輸入 LASendPort

  4. 針對 [類型],從清單中選取 LogicApp ,然後選取 [ 設定 ] 按鈕。

  5. 在 [ 一般 ] 索引標籤中,設定邏輯應用程式觸發程式的回 呼 URI 。 作法有二:

    選項 1 :貼上您在上一個步驟中複製的 HTTP POST URL (回呼 URI) 屬性。 您也可以使用下列步驟複製 URI:

    1. Azure 入口網站中,在 Logic Apps 設計工具中開啟邏輯應用程式, (編輯模式) 。

    2. 選取 [ 收到 HTTP 要求時 ] 卡片,然後複製 URL

    3. 在您的傳送埠中,將此 URL 貼到 觸發程式 (回呼 URI) 屬性中。

      提示

      您也可以使用管理 API 來取得此 URI。

      選項 2 :如果您不知道觸發程式的回呼 URI,請選取 [ 設定],然後登入 Azure。 然後,使用下拉式清單來選擇您的訂用帳戶、資源群組邏輯應用程式和觸發程式

  6. 選擇項。 在 [ 系結] 索引標籤中,設定基礎WCF-WebHttp系結的任何逾時和編碼相關屬性。 處理大型訊息時,這些屬性很有用。

    使用 作法
    開啟逾時 輸入通道開啟作業完成所需的時間。 這個值應大於或等於 System.TimeSpan.Zero。

    預設值:00:01:00
    最大值:23:59:59
    傳送逾時 輸入傳送作業完成所需的時間間隔。 這個值應大於或等於 System.TimeSpan.Zero。 如果您使用要求-回應接收埠,這個值會指定整個互動完成的時間範圍,即使用戶端傳回大型訊息也一樣。

    預設值:00:01:00
    最大值:23:59:59
    關閉逾時 輸入通道關閉作業完成所需的時間間隔。 這個值應大於或等於 System.TimeSpan.Zero。

    預設值:00:01:00
    最大值:23:59:59
    接收訊息大小上限 (以位元組為單位) 輸入要透過網路接收的訊息大小上限,以位元組為單位,包括標頭。 訊息的大小是由為每個訊息配置的記憶體數量所系結。 您可以使用這個屬性來限制遭受拒絕服務 (DoS) 攻擊的風險程度。

    邏輯 appa 配接器會利用緩衝傳輸模式中的 WebHttpBinding 類別 來與端點通訊。 在緩衝的傳輸模式下, WebHttpBinding.MaxBufferSize 屬性一律等於這個屬性的值。

    預設值:65536
    最大值:2147483647
  7. 選擇項。 在 [ 訊息] 索引 標籤中,使用 [輸出 HTTP 標頭 ] 屬性,在傳出訊息上新增任何自訂標頭。

  8. 選取 [確定] 以儲存您的設定。

管理傳送埠和傳送埠群組 描述其他傳送埠屬性。

步驟 3:傳送一些訊息

您可以使用檔案配接器建立接收埠和接收位置。 請確定您的邏輯應用程式已啟用。

  1. 建立接收埠,例如FileSendPort

  2. 建立接收位置,並設定類似下列的屬性:

    屬性 範例輸入
    接收資料夾 C:\temp\In\
    檔案遮罩 *.txt
    管線 PassThruReceive
  3. 在您建立的傳送埠中,將 [篩選] 設定為:

    屬性 運算子
    BTS.ReceivePortName == FileSendPort
  4. 使用下列文字建立文字檔 (FileName.txt) 。 使用此文字檔作為範例訊息:

    <Data>
      <DataID>DataID_0</DataID>
      <DataDetails>DataDetails_0</DataDetails>
    </Data>
    
  5. 將範例訊息 (FileName.txt) 複製到接收資料夾中。 傳送埠會使用您輸入的 URI,將.txt檔案傳送至邏輯應用程式。 邏輯應用程式會收到檔案。 如果您使用 Office 365 Outlook 連接器,您的 [收件者] 電子郵件地址應該會收到包含範例訊息的電子郵件。

下一個

什麼是 Logic Apps

建立邏輯應用程式

在 BizTalk Server 中使用配接器