共用方式為


工作流程組態檔

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")

其他組態選項

下列章節說明如何使用組態檔啟用工作流程中的特定功能,例如重新認可工作批次或記錄工作流程資料。

啟用工作批次重試

認可工作批次持續儲存的服務,例如 DefaultWorkflowCommitWorkBatchServiceSqlWorkflowPersistenceService,可如下列範例所示,設定 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

  • SqlTrackingService

如需詳細資訊,請參閱前面列出所有類別的 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 並將所有記錄資訊傳送給它們。

稍早範例所示的其他行,允許您指定命名空間以擷取記錄資訊,以及追蹤的資訊量。值屬性可能的值包括:

說明

全部

記錄所有接收到的訊息

關閉

未記錄任何訊息

嚴重

僅記錄視為嚴重的訊息

錯誤

記錄嚴重與錯誤訊息

警告

記錄嚴重、錯誤以及警告訊息

資訊

記錄嚴重、錯誤、警告和資訊訊息

詳細資訊

記錄嚴重、錯誤、警告、資訊和詳細資訊訊息

請參閱

參考

WorkflowRuntime

其他資源

How to: Add and Remove Workflow Services
Windows Workflow Foundation 一般參考

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.