共用方式為


SubmitDirect (BizTalk Server 範例)

SubmitDirect 範例示範如何以程式設計方式將單向訊息和要求/回應訊息從 提交至 Microsoft BizTalk Server。以 NET 為基礎的應用程式。 此範例將示範搭配配接器使用 BizTalk Server API。 此外還提供名為 Submit 的接收配接器,可用來提交訊息至 BizTalk Server。

必要條件

在執行此範例之前,請先確認您以屬於 [BizTalk 外掛式主控件使用者] 群組的使用者登入。

此範例的用途

此範例將說明如何執行與 BizTalk 配接器相關的各種不同工作。 具體而言,此範例將說明如何:

  • 使用在 BizTalk Server 程序外部執行的外掛式配接器。 Submit 配接器是外掛式配接器,因為它是由 BizTalk Server 程序外部的程序所建立 (您會將它當做 .NET 應用程式啟動)。

  • 提交訊息批次至 BizTalk Server。 Submit 配接器會使用批次訊息提交功能,一次提交數個訊息。

  • 使用要求/回應模式同步提交訊息,以及使用單向模式非同步地提交訊息。

  • 在 BizTalk Server 上註冊配接器。 此範例會說明如何註冊配接器,並且提供註冊可執行檔來自動化配接器註冊。

    此範例實際上包含兩個範例,如下所示:

  • 提交一批單項訊息。 主控台應用程式 SubmitMessages.exe 會從命令列取得字串,並將每一個字串當做個別訊息提交至 BizTalk Server。 BizTalk Server 會在接收位置挑選每一個提交的訊息,透過通過接收和傳送管線傳送,然後寫入文字檔中。

  • 提交要求/回應訊息。 主控台應用程式 SubmitRequest.exe 會採用其命令列上指定的 .xml 檔,並將它提交至 BizTalk Server。 此 .xml 檔的結構描述會定義包含兩個整數欄位的元素。 BizTalk Server 會挑選 .xml 檔並透過協調流程進行處理 (使用一個要求/回應埠)。 然後使用對應產生傳回整數的 XML 回應訊息,該整數為要求中兩個整數得出的結果。 當主控台應用程式收到回應時,便會顯示結果。

可在何處找到此範例

<範例路徑>\AdaptersDevelopment\SubmitDirect\

下表列出此範例中的檔案,並描述其用途。

檔案 Description
Cleanup.bat 從全域組件快取 (GAC) 解除部署並移除組件;移除傳送和接收埠;視需要移除 Microsoft Internet Information Services (IIS) 虛擬目錄。
Setup.bat 建置並初始化此範例。
SubmitDirect.sln 方案檔,其中 ProcessRequest 資料夾包含 BizTalk 專案,而 Microsoft Visual C# 專案則包含在其他資料夾中。
SubmitMessagesBinding.xml,SubmitRequestBinding.xml 用於自動化設定,例如連接埠繫結。
\ProcessRequest 資料夾中:

DocIn.xsd、DocOut.xsd、Multiplier.odx、Multiply.btm、ProcessRequest.btproj
提供 BizTalk 專案,將要求/回應實例中的整數相乘。
在 \SubmitMessages 資料夾中:

AssemblyInfo.cs、SubmitMessages.cs、SubmitMessages.csproj
提供 Visual C# 專案給主控台應用程式,該應用程式會將命令列字串參數當做一批單獨訊息傳遞。
在 \SubmitRequest 資料夾中:

AssemblyInfo.cs、DocInstance.xml、SubmitRequest.cs、SubmitRequest.csproj
提供 C# 專案給主控台應用程式,該應用程式會傳遞包含兩個要相乘之整數的 .xml 檔 (DocInstance.xml)。
在 \TransportProxyUtils 資料夾中:

AssemblyInfo.cs、MessageHelper.cs、MessagingAPIInterface.cs、MessagingAPIs.cs、ResponseCallBack.cs、TpBatchAsyncCallback.cs、TpBatchAsyncResult.cs、TpBatchStatus.cs、TransportProxyUtils.csproj
提供 C# 專案給 Submit 配接器的執行階段部份,該配接器會實作同步和非同步提交訊息的方法,以及提交批次和單一要求訊息的方法。
在 \TransportProxyUtilsReg 資料夾中:

AssemblyInfo.cs、RegisterAdapter.cs、TransportProxyUtilsReg.csproj
提供 Visual C# 專案,示範您可用來在 BizTalk Server 上註冊配接器的程式碼。
在 \TransportProxyUtilsUI 資料夾中:

AssemblyInfo.cs、TransportProxyUtilsMgmt.cs、TransportProxyUtilsUI.csproj
提供 Visual C# 專案給 Submit 配接器的使用者介面部分。

建置和初始化範例

建置及初始化 SubmitDirect 範例

  1. 在命令視窗中,瀏覽至下列資料夾:

    <範例路徑>\AdaptersDevelopment\SubmitDirect

  2. 執行檔案 Setup.bat,這會執行下列動作:

    • 針對本範例的批次提交部份建立下列輸出資料夾。

      <範例路徑>\AdaptersDevelopment\SubmitDirect\Out

    • 編譯此範例的各種 Visual Studio 專案。

    • 在 BizTalk Server 上註冊 Submit 配接器。

    • 建立並繫結 BizTalk Server 接收位置,以及傳送和接收埠。

      注意

      此範例會在建立和繫結連接埠時顯示下列警告:

      Warning: Receive handler not specified for receive location "SubmitDirectRL"; updating with first receive handler with matching transport type.

      Warning: Host not specified for orchestration "Microsoft.Samples.BizTalk.ProcessRequest.Multiplier"; updating with first available host.

      您可以安全地忽略這些警告。 (繫結檔案已省略主控件名稱與接收處理常式,以配合使用者安裝中可能的命名差異)。

    • 啟用接收位置,並啟動傳送埠和協調流程。

      注意

      在嘗試執行此範例之前,您應該確認 BizTalk Server 沒有在建置和初始化程序期間報告任何錯誤。

      注意

      若您選擇不執行 Setup.bat 檔案就開啟和建置此範例中的專案,您必須先使用 .NET Framework Strong Name Utility (sn.exe) 建立強式名稱金鑰組。 使用此金鑰組簽署所產生的組件。

      注意

      若要復原 Setup.bat 所進行的變更,請執行 Cleanup.bat。 您必須先執行 Cleanup.bat 才能再度執行 Setup.bat。

執行範例

由於此範例使用 File 配接器,因此 BizTalk 主控件 (BizTalkServerApplication) 必須為執行中。 請使用下列程序來執行 SubmitDirect 範例。

執行 SubmitDirect 範例的批次提交部份

  1. 在命令視窗中,瀏覽至下列資料夾:

    <範例路徑>\AdaptersDevelopment\SubmitDirect\SubmitMessages\bin\Debug

  2. 執行 SubmitMessages.exe 檔,在命令列上傳遞多個字串。

    範例:SubmitMessages msg1 msg2 msg3

  3. 觀察輸出檔案夾中建立的多個文字檔 Out。這些檔案包含在命令列上傳遞的字串,每個檔案一個。

執行 SubmitDirect 範例的要求/回應部份

  1. 在命令視窗中,瀏覽至下列資料夾:

    <範例路徑>\AdaptersDevelopment\SubmitDirect\SubmitRequest\bin\Debug

  2. 執行 SubmitRequest.exe 檔,在命令列上傳遞適當的 .xml 檔案名稱。

    範例:SubmitRequest ..\..\DocInstance.xml

  3. 觀察回應 XML 訊息,其中包含顯示給主控台的乘法作業結果。

註解

您可以在其他應用程式中使用 Submit 配接器。 您可以從任何 .NET 架構的程式碼使用該配接器,以程式設計的方式傳遞訊息至您的 BizTalk Server。 若要搭配您的程式碼使用此配接器,請執行下列程序。

搭配您的程式碼使用範例配接器

  1. 在您的 BizTalk Server 上註冊 Submit 配接器。 如果您已執行此範例提供的 Setup.bat 檔,則配接器應該已註冊且可立即使用。 否則,您可以建置 TransportProxyUtils.csproj、TransportProxyUtilsUI.csproj 和 TransportProxyUtilsReg.csproj 專案,然後執行第三個專案產生的可執行檔 RegisterAdapter.exe,藉此註冊配接器。

    重要

    如果您在 64 位電腦上安裝 BizTalk,請將 HKEY_CLASSES_ROOT\CLSID\ 登錄專案的所有實例變更為 RegisterAdapter.cs 檔案中的 HKEY_CLASSES_ROOT\Wow6432Node\CLSID\。

  2. 建立接收位置使用 Submit 配接器的接收埠。 指定接收位置的位址。 此位址可以是使用此配接器的接收位置內,任何未使用過的唯一字串。

  3. 在 Visual Studio 專案中參考元件 Microsoft.BizTalk.SDKSamples.AdaptersDevelopment.TransportProxyUtils.dll。

  4. 使用此組建提供的下列一或多個方法提交訊息至 BizTalk Server。

    方法 Description
    SubmitMessage ()

    BeginSubmitMessage()

    EndSubmitMessage()
    提交單向訊息至 BizTalk Server 的同步和非同步方法。 訊息內容中必須設定訊息將提交至其中的接收位置位址。

    表示已傳回提交狀態 (成功/失敗) 的布林值。
    SubmitMessages()

    BeginSubmitMessages()

    EndSubmitMessages()
    提交單向訊息陣列至 BizTalk Server 的同步和非同步方法。 訊息內容中應設定訊息將提交至其中的接收位置位址。

    表示已傳回提交狀態 (成功/失敗) 的布林值。
    SubmitSyncMessage()

    BeginSubmitSyncMessage()

    EndSubmitSyncMessage()
    提交要求訊息至 BizTalk Server 的同步和非同步方法。 訊息內容中應設定訊息將提交至其中的接收位置位址。

    傳回回應訊息。
    CreateMessageFromString() 從字串建立 BizTalk Server 訊息物件,並且在訊息內容中設定接收位置位址屬性。

    傳回 BizTalk 訊息物件。
    CreateMessageFromStream() 從資料流建立 BizTalk Server 訊息物件,並且在訊息內容中設定接收位置位址屬性。

    傳回 BizTalk Server 訊息物件。

    如需這些方法的參數和傳回類型的詳細資訊,請參閱 TransportProxyUtils 資料夾中的 MessagingAPIInterface.cs 檔。

另請參閱

配接器範例 - 開發
註冊配接器