這篇我來為asp.net中的報銷多級審批工作流程項目加上Tracing Service。
SqlTrackingService 類表示一個功能完全的Tracing Service。使用此服務可以收集和儲存跟蹤資訊,還可以 儲存追蹤設定檔,並在工作流程運行時引擎請求時提供這些設定檔。SQL 追蹤服務將運行時跟蹤基礎結 構發送給它的跟蹤資料寫入到 SQL 資料庫。在許多情況下,對於 SqlTrackingService 服務來說,保持 其資料庫和工作流程運行時引擎狀態之間的一致性十分重要。因此,SqlTrackingService 類實現了 IPendingWork 介面,並可參與到由 WorkflowCommitWorkBatchService 服務提供的工作流程事務批處理功 能中。您可以設定 IsTransactional 屬性,或將適當的參數傳遞給建構函式,以便將 SqlTrackingService 服務配置為參與批處理,並將表示 SQL 資料庫掛起更改的對象添加到工作批次。
SqlTrackingService 服務還會在其資料庫中保留追蹤設定檔。工作流程運行時引擎知道對所使用的任 何追蹤設定檔所做的更改。SqlTrackingService 服務實現 IProfileNotification 介面,並定期檢查 其資料庫中的追蹤設定檔,以便將對其資料庫中儲存的 TrackingProfile 所做的更改通知工作流程運行 時引擎。可以設定 ProfileChangeCheckInterval 屬性或將適當的參數傳遞給建構函式來設定間隔, SqlTrackingService 服務將按該間隔檢查其追蹤設定檔。[MSDN]
第一:配置跟蹤用的資料庫。
在C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\EN目錄下有兩個 檔案Tracking_Schema.sql和Tracking_Logic.sql,安先後順序執行。
第二:配置Tracing Service。設定檔如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="WorkflowWithTracking" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </configSections> <WorkflowWithTracking> <CommonParameters> <add name="ConnectionString" value="Data Source=.;Initial Catalog=c6ps;Integrated Security=True"/> </CommonParameters> <Services> <add type="System.Workflow.Runtime.Tracking.SqlTrackingService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35"/> </Services> </WorkflowWithTracking> </configuration>