如何設定用於攔截的 Workflow Foundation 應用程式
您必須先安裝 BAM 攔截器軟體,並將您的應用程式設定為使用 Windows Workflow Foundation (WF) 攔截器服務,才能開始收集 BAM 活動資料。 假設您已成功安裝BizTalk Server及其相依性,並已建立至少一個 BizTalk 群組。
安裝 BAM-Eventing 軟體
您必須先使用 BizTalk Server 安裝程式來安裝 BAM-Eventing 軟體,才能將 WF 應用程式設定為使用 WF 的 BAM 攔截器。 如需安裝 BAM-Eventing 軟體及註冊效能計數器的詳細資訊,請參閱 安裝 BAM-Eventing 軟體。
設定用於追蹤的 Windows Workflow Foundation 應用程式
WF 應用程式必須先完成四項工作,才能開始撰寫 BAM 事件資訊:
觀察模型必須使用 BizTalk Server BAM 工具建立,然後使用 BAM 管理員命令列工具 (bm.exe) 進行部署。
必須使用 BAM 管理員命令列工具 (bm.exe) 建立及部署攔截器組態檔。
執行主應用程式的使用者必須是適當 BAM 活動事件寫入器的成員 (bam_ < activity > _EventWriter) SQL Server角色,讓應用程式能夠讀取攔截器組態資訊並寫入 BAM 活動。
App.config 檔案或應用程式本身必須經過修改,才能載入 BAM 追蹤服務並接著重新啟動應用程式。
只有在順利完成這些工作之後,才會開始出現在BizTalk Server BAM 資料庫中的事件。
部署觀察模型
您必須部署觀察模型,才能部署攔截器組態檔或擷取您應用程式中的 BAM 活動。
若要使用 bm.exe 部署觀察模型
按一下 [啟動 ],然後按一下 [ 執行 ] 以開啟 Windows 命令提示字元。
在 [開啟] 欄位中輸入cmd,然後按一下 [確定]。
使用變更目錄命令移至內含要部署之觀察模型的目錄。 例如, cd c:\businessprocess\Orders。
使用 bm.exe 部署觀察模型:
c:\Program Files (x86) \Microsoft BizTalk Server < VERSION >\Tracking\BM.exe deploy-all -definitionfile: <definitionfile.xml>
請務必將definitionfile.xml> 取代 < 為您想要部署的觀察檔名稱。 如需更多選項,請參閱 攔截器管理命令。
注意
在支援使用者帳戶控制 (UAC) 的系統上,您可能需要使用系統管理權限來執行工具。
輸入 Exit,然後按 ENTER 以關閉命令提示字元。
部署攔截器組態檔
您必須部署攔截器組態檔,應用程式才能擷取 BAM 活動。
若要使用 bm.exe 部署攔截器組態檔
按一下 [啟動 ],然後按一下 [ 執行 ] 以開啟 Windows 命令提示字元。
在 [開啟] 欄位中輸入cmd,然後按一下 [確定]。
使用變更目錄命令移至內含要部署之攔截器組態檔的目錄。 例如, cd c:\businessprocess\Orders。
使用 bm.exe 部署攔截器組態檔:
\Program Files (x86) \Microsoft BizTalk Server VERSION >Tracking\BM.exe < deploy-interceptor -filename: <icfile.xml>
請務必以您要部署的攔截器組態檔名稱取代 <icfile.xml> 。
注意
您可以使用 -Force:True 旗標來覆寫與攔截器組態檔中相同名稱 () 的現有事件來源。 如果您這樣做,請務必使用 get-interceptor 命令來備份現有的組態。 使用 -Force:True 旗標可能會刪除任何參考要覆寫之事件來源的攔截器組態。
注意
在支援使用者帳戶控制 (UAC) 的系統上,您可能需要使用系統管理權限來執行工具。
輸入 Exit,然後按 ENTER 以關閉命令提示字元。
如果您已經部署 WF 應用程式,則在下一個輪詢間隔之前,將不會載入新的設定。 然而,您若設定並重新啟動應用程式,就會立即收取組態。
加入使用者至適合的 BAM 活動角色
BAM 攔截器架構會讓每個活動使用一個 SQL Server 角色,控制活動和組態資訊的存取。 您必須將執行 WF 應用程式的使用者帳戶新增至 BAM 主要匯入資料庫中的適當 BAM 活動角色 () 。
設定應用程式以載入 BAM 追蹤服務
在 WF 應用程式中載入 BAM 追蹤服務有三種案例:
如果您的 WF 應用程式已經使用 WorkflowRuntime 載入 WF 組態區段,您可以將 BAM 追蹤服務資訊新增至現有的區段。
如果您的 WF 應用程式未使用 WorkflowRuntime 載入 WF 組態區段,您必須新增程式碼,以從應用程式組態檔載入自訂區段。 您必須建立區段,並在該區段加入 BAM 追蹤服務資訊。
如果您想要將設定硬式編碼,您可以使用 WF API 以程式設計方式載入追蹤服務,而不需要組態檔,或從自訂來源載入組態。
設定 WF 應用程式時,請注意下列考慮:
WF 攔截器每一個 WorkflowRuntime 只支援一個 BamTrackingService。
WF 攔截器支援每個應用程式域的多個 BamTrackingService 實例。
- N 個 WorkflowRuntime 就支援 N 個 BamTrackingService。
若同一個應用程式網域中,不同的 BamTrackingService 執行個體使用不同的連線字串,攔截器就會引發例外狀況。
攔截器會從第一個啟動的 BamTrackingService 執行個體取得 IC 輪詢間隔值。
應用程式網域中的最後一個 BamTrackingService 停止時,攔截器就會停止 IC 輪詢執行緒。
如需 WorkflowRuntime 和載入組態資訊的詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=83314 。
若要設定 BAM 追蹤服務的 App.config 檔案
開啟與應用程式關聯的 App.config 檔案。 使用 Notepad.exe 或其他文字編輯器開啟即可。
將下列組態資訊插入 App.config 檔案以新增 BAM 追蹤服務。 它應該定位為元素的
configuration
子系。注意
使用 WorkflowRuntime 類別時,區段專案應該對應至應用程式程式碼所使用的名稱。
<!-- The element name must match the one expected by WorkflowRuntime in your WF application --> <WorkflowServiceContainer> <Services> <add type="Microsoft.BizTalk.Bam.Interceptors.Workflow.BamTrackingService, Microsoft.BizTalk.Bam.Interceptors, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" ConnectionString="Integrated Security=SSPI;Data Source=.;Initial Catalog=BAMPrimaryImport" PollingIntervalSec="5"/> </Services> </WorkflowServiceContainer>
修改 ConnectionString 屬性以符合您的環境。
重新啟動您的應用程式。
若要修改應用程式以載入自訂組態區段
在 Visual Studio 中開啟 Windows Workflow Foundation 專案。
將具有適合之參數的新 BamTrackingService 執行個體,加入至應用程式的 WorkflowRuntime 執行個體:
// !! Replace "WorkflowServiceContainer" with the section name // you used in your App.config file. WorkflowRuntime workflowRuntime = new WorkflowRuntime("WorkflowServiceContainer");
重新編譯並部署修改後的應用程式。
若要修改應用程式以透過程式設計的方式載入 BAM 追蹤服務
在 Visual Studio 中開啟 Windows Workflow Foundation 專案。
將具有適合之參數的新 BamTrackingService 執行個體,加入至應用程式的 WorkflowRuntime 執行個體:
string connectionString = "Integrated Security=SSPI;Data Source=.;Initial Catalog=BAMPrimaryImport" int pollingInterval = 5; WorkflowRuntime workflowRuntime = new WorkflowRuntime(); workflowRuntime.AddService(new BamTrackingService(connectionString, pollingInterval));
您可根據特定環境新增或移除參數。
重新編譯並部署修改後的應用程式。