工作流配置文件
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。第二个元素列出为此工作流运行时引擎配置的各个服务。如果某个服务接受其他配置参数,则可能会包含这些参数作为属性,如上一个示例中的 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 属性可以在全局级设置(如“常用参数”**一节中所示),也可以为支持 EnableRetries 的个别服务设置(如“服务”**一节中所示)。在此示例中,除 SqlWorkflowPersistenceService 外,所有支持 EnableRetries 的服务都将启用该功能。
以下服务支持 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,并向它们发送所有日志记录信息。
在之前给出的示例中,其余的行允许您指定命名空间,以便捕获日志记录信息以及跟踪的信息量。值属性的可能值包括:
值 | 说明 |
---|---|
All |
记录接收到的所有消息 |
Off |
不记录任何消息 |
Critical |
仅记录关键消息 |
Error |
记录关键消息和错误消息 |
Warning |
记录关键、错误和警告消息 |
Information |
记录关键、错误、警告和提示消息 |
Verbose |
记录关键、错误、警告、提示和详细消息 |
请参见
参考
其他资源
How to: Add and Remove Workflow Services
Windows Workflow Foundation 常规参考
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。