工作流程組態檔
Windows Workflow Foundation 主應用程式 (Host Application) 可以使用組態檔案來控制 WorkflowRuntime 物件的行為。
建立組態區段
若要使用組態檔案設定工作流程執行階段引擎,首先必須為應用程式或 Web 服務建立 .config 檔案 (應用程式為 app.config,Web 服務為 web.config)。在此組態檔中,建立組態區段,如下列 XML 程式碼所示。
<configuration>
<configSections>
<section name="WorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken 31bf3856ad364e35" />
</configSections>
</configuration>
定義組態區段
您的組態檔可以包含多個組態區段,但是當您具現化 WorkflowRuntime 物件時,只能使用一個區段。
宣告組態區段之後,加入該區段於執行階段將使用的組態資訊。請注意區段標記的名稱,與前面範例的名稱屬性內所指定的名稱相符。在這個範例中,區域標記為 WorkflowRuntime。
<WorkflowRuntime Name="SampleApplication">
<CommonParameters>
<add name="ConnectionString" value="Initial Catalog=WorkflowStore;Data Source=localhost;Integrated Security=SSPI;" />
</CommonParameters>
<Services>
<add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" maxQueuedWorkItems="20"/>
<add type="System.Workflow.Runtime.Hosting.SharedConnectionWorkflowTransactionService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" UnloadOnIdle="false"/>
</Services>
</WorkflowRuntime>
WorkflowRuntime 組態區段有單一屬性 Name 用來指定此 WorkflowRuntime 的名稱。名稱用於輸出以識別此執行階段及可能在系統執行的其他執行階段,例如在效能計數器中。
組態區段包含兩個巢狀項目。CommonParameters 項目定義全球多種服務間使用的所有參數,例如在使用 SharedConnectionWorkflowCommitWorkBatchService 時的 ConnectionString。第二項目列出針對此工作流程執行階段引擎設定的個別服務。若服務需要額外的組態參數,這些參數可能納入屬性,如 maxQueuedWorkItems 以及先前範例 UnloadOnIdle 屬性所示。
使用組態檔
組態檔控制 WorkflowRuntime 物件的行為。當您建立 WorkflowRuntime 物件執行個體時,可以程式設計的方式加入服務,或如本主題所示地使用組態檔。如果想使用組態檔中定義的組態區段,將組態區段的名稱以參數傳至 WorkflowRuntime 建構函式。
下列範例顯示如何使用稍早建立的 WorkflowRuntime 組態區段,以建立 WorkflowRuntime 執行個體。
WorkflowRuntime runtime = new WorkflowRuntime("WorkflowRuntime");
Dim runtime As New WorkflowRuntime("WorkflowRuntime")
其他組態選項
下列章節說明如何使用組態檔啟用工作流程中的特定功能,例如重新認可工作批次或記錄工作流程資料。
啟用工作批次重試
認可工作批次持續儲存的服務,例如 DefaultWorkflowCommitWorkBatchService 及 SqlWorkflowPersistenceService,可如下列範例所示,設定 EnableRetries 屬性,允許它們重試交易:
<WorkflowRuntime Name="SampleApplication" UnloadOnIdle="false">
<CommonParameters>
<add name="ConnectionString" value="Initial Catalog=WorkflowStore;Data Source=localhost;Integrated Security=SSPI;" />
<add name="EnableRetries" value="True" />
</CommonParameters>
<Services>
<add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" EnableRetries="False" />
</Services>
</WorkflowRuntime>
請注意,您可以將 EnableRetries 屬性設定為全域層級 (如 CommonParameters 一節所示),或針對支援 EnableRetries 的個別服務設定 (如 Services 一節所示)。在此範例中,所有支援 EnableRetries 的服務將啟用該功能,SqlWorkflowPersistenceService 除外。
下列服務支援 EnableRetries:
DefaultWorkflowCommitWorkBatchService
SharedConnectionWorkflowCommitWorkBatchService
SqlWorkflowPersistenceService
如需詳細資訊,請參閱前面列出所有類別的 EnableRetries 屬性。
如需重試工作批次交易的一般資訊,請參閱Batching State Information in Workflows。
啟用工作流程記錄
您可使用組態檔輸出 Windows Workflow Foundation 記錄資訊,以協助偵錯作業。Windows Workflow Foundation 使用 .NET Framework 2.0 引入的組態格式。針對數個 Windows Workflow Foundation 命名空間啟用記錄資訊的範例如下。
<system.diagnostics>
<switches>
<add name="System.Workflow LogToFile" value="1" />
<add name="System.Workflow.Runtime" value="All" />
<add name="System.Workflow.Runtime.Hosting" value="All" />
<add name="System.Workflow.Runtime.Tracking" value="All" />
<add name="System.Workflow.Activities" value="All" />
<add name="System.Workflow.Activities.Rules" value="All" />
</switches>
</system.diagnostics>
在此範例中,第一個加入節點啟用記錄至檔案。檔案是在您的主應用程式目錄中,使用 WorkflowTrace.log 名稱來建立。其他選項是將名稱參數設為 "System.Workflow LogToTraceListener" 以啟用記錄至 TraceListener 的功能。設定之後,Windows Workflow Foundation 將列舉您主應用程式建立的所有 TraceListener 並將所有記錄資訊傳送給它們。
稍早範例所示的其他行,允許您指定命名空間以擷取記錄資訊,以及追蹤的資訊量。值屬性可能的值包括:
值 | 說明 |
---|---|
全部 |
記錄所有接收到的訊息 |
關閉 |
未記錄任何訊息 |
嚴重 |
僅記錄視為嚴重的訊息 |
錯誤 |
記錄嚴重與錯誤訊息 |
警告 |
記錄嚴重、錯誤以及警告訊息 |
資訊 |
記錄嚴重、錯誤、警告和資訊訊息 |
詳細資訊 |
記錄嚴重、錯誤、警告、資訊和詳細資訊訊息 |
請參閱
參考
其他資源
How to: Add and Remove Workflow Services
Windows Workflow Foundation 一般參考
Copyright © 2007 by Microsoft Corporation. All rights reserved.