工作流配置文件

Windows Workflow Foundation 宿主应用程序可使用配置文件来控制 WorkflowRuntime 对象的行为。

创建配置节

若要使用配置文件来配置工作流运行时引擎,必须先为应用程序创建一个配置文件 (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。第二个元素列出为此工作流运行时引擎配置的各个服务。如果某个服务接受其他配置参数,则可能会包含这些参数作为属性,如上一个示例中的 maxQueuedWorkItemsUnloadOnIdle 属性所示。

使用配置文件

配置文件控制 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 属性可以在全局级设置(如“常用参数”**一节中所示),也可以为支持 EnableRetries 的个别服务设置(如“服务”**一节中所示)。在此示例中,除 SqlWorkflowPersistenceService 外,所有支持 EnableRetries 的服务都将启用该功能。

以下服务支持 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,并向它们发送所有日志记录信息。

在之前给出的示例中,其余的行允许您指定命名空间,以便捕获日志记录信息以及跟踪的信息量。值属性的可能值包括:

说明

All

记录接收到的所有消息

Off

不记录任何消息

Critical

仅记录关键消息

Error

记录关键消息和错误消息

Warning

记录关键、错误和警告消息

Information

记录关键、错误、警告和提示消息

Verbose

记录关键、错误、警告、提示和详细消息

请参见

参考

WorkflowRuntime

其他资源

How to: Add and Remove Workflow Services
Windows Workflow Foundation 常规参考

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。