任务 2:使用 App.Config 配置运行时服务

任务 1:使用代码配置运行时服务中,您通过调用在 WorkflowRuntime 类中定义的 AddService 方法将 DefaultWorkflowSchedulerService 服务添加到了 Windows Workflow Foundation 运行时引擎。 在此练习中,您要使用不同的方法来配置运行时服务,即使用应用程序配置文件。

使用配置文件是一种更加灵活的替代方案,原因是:通过这种方法,您可以为 Windows Workflow 运行时引擎创建您的应用程序可以使用的多种不同配置。 例如,您可以创建不使用任何服务的配置,也可以创建在工作流执行期间使用持久性和跟踪功能的运行时引擎配置。 此外,可在同一配置文件中定义这些不同的配置,并由主机应用程序根据需要对访问这些配置。

备注

如果已完成任务 1:使用代码配置运行时服务,则必须撤消您对项目所做的全部更改,因为您要使用配置文件配置运行时服务。 此任务提供的项目文件不包含在上一任务中添加的代码,因此可提供一个良好起点。

备注

虽然建议您按顺序进行下列练习,但并不要求您这么做。 您可以通过打开示例项目并执行下节中的步骤来开始此练习。

创建应用程序配置文件

  1. 在项目目录中创建一个名为 App.config 的新文件。

  2. 在 HostingWorkflows 项目文件中包含您的源文件的 ItemGroup 元素中,添加一个名为 None 的新元素。

  3. 添加一个名为 Include 且值为“App.config”的属性。

定义应用程序配置文件

  1. 在 App.config 文件中,使用 UTF-8 编码创建标准 XML 处理指令。

    <?xml version="1.0" encoding="utf-8" ?>
    
  2. 创建一个名为 configuration 的根元素。

    <configuration>
    </configuration>
    
  3. configuration 元素中,创建一个名为 configSections 的新元素。

    <configSections>
    </configSections>
    
  4. configSections 元素中,创建一个名为 section 的新元素。

  5. 添加一个名为 name 且值为“HostingWorkflowRuntime”的属性。

  6. 另外添加一个名为 type 且值为 "System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 的属性。

    <section name="HostingWorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    

    备注

    您可以根据需要创建任意数量的配置节。 但是,对于此练习,只须创建一个配置节。

  7. configuration 节点中创建一个名为 HostingWorkflowRuntime 的新元素(包含一个名为 name 且值为“Hosting”的属性)。

    备注

    此元素名与您通过在步骤 5 中创建的节的 name 属性指定的名称相同。如果您创建多个配置节,则创建与每个节名相对应的新元素。

    <HostingWorkflowRuntime Name="Hosting">
    </HostingWorkflowRuntime>
    
  8. HostingWorkflowRuntime 元素中,创建一个名为 CommonParameters 的新元素。

    <CommonParameters/>
    
  9. HostingWorkflowRuntime 元素中,创建一个名为 Services 的新元素。

    <Services>
    </Services>
    
  10. Services 元素中,创建一个名为 add 的新元素。

  11. 添加一个名为 type 且值为 System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 的属性。

  12. 另外添加一个名为 maxSimultaneousWorkflows 且值为 1 的属性。

    <add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  maxSimultaneousWorkflows="1"/>
    
  13. App.config 文件看上去与以下配置相似。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
            <section name="HostingWorkflowRuntime" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        </configSections>
        <HostingWorkflowRuntime Name="Hosting">
            <CommonParameters/>
            <Services>
                <add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  maxSimultaneousWorkflows="1"/>
            </Services>
        </HostingWorkflowRuntime>
    </configuration>
    

使用应用程序配置文件

  • Program 类的 Main 方法中,为 WorkflowRuntime 构造函数(用于实例化 WorkflowRuntime 对象)添加一个参数。

    此参数属于 String 类型,该类型指定要使用的配置节的名称。

编译代码

有关编译代码的信息,请参见编译代码

任务 3:使用 Windows 工作流持久性服务中,您要学习如何使用 SqlWorkflowPersistenceService 服务存储工作流的当前状态。

请参见

任务

任务 3:使用 Windows 工作流持久性服务

参考

DefaultWorkflowSchedulerService
System.Workflow.Runtime.Configuration

概念

如何:添加和移除工作流服务

其他资源

Workflow Configuration Formats

Footer image

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