“简单的跟踪”示例

Download sample

此示例演示如何使用 Windows Workflow Foundation 提供的 SQL 跟踪服务来跟踪工作流的执行。

工作流运行时在执行工作流时会引发某些事件。 跟踪服务可以捕获这些事件,并将有关这些事件的信息存储在可以查询的 SQL Server 数据库中。

工作流运行时可以引发以下类型的事件:

  • 实例级事件。 当工作流实例进入某一特定状态时即会引发这些事件。 例如,在初始化工作流实例时或在执行工作流实例的过程中会引发事件。

  • 活动级事件。 工作流由若干活动组成,每个活动都遵循一定的生命周期。 在生命周期期间,活动会经历多种状态。 当活动达到特定状态时即会引发事件。

  • 用户跟踪的事件。 工作流作者可以创建自定义跟踪事件并将其添加到工作流的代码旁置中。

可以发出工作流数据上下文中的数据并将其与事件一起提供给跟踪服务。

在跟踪某个工作流时,您所关注的可能并不是所有状态和活动的所有事件。 可以创建跟踪配置文件来指定关注的事件和数据。SQL 跟踪服务具有默认跟踪配置文件。 此示例演示如何将 SQL 跟踪服务与默认跟踪配置文件一起使用。

使用下面的代码可以向工作流运行时注册跟踪服务:

WorkflowRuntime wr = new WorkflowRuntime();
wr.AddService(new SqlTrackingService(connectionstring));
wr.StartRuntime();

第二行向工作流运行时注册 SQL 跟踪服务。 连接字符串是跟踪数据库的连接字符串。

示例的输出将如下所示:

“简单跟踪”示例输出

创建跟踪数据库

由 Windows Workflow Foundation 安装的 SQL 服务使用 Microsoft SQL Server 来存储信息。 可以对这些任务使用 Microsoft SQL Server 2005 Express、SQL Server 2000 或更高版本或 Microsoft SQL Server 2000 Desktop Engine (MSDE)。

Windows Workflow Foundation 安装程序并不安装这些服务所需的数据库,但会安装用于为这些服务创建和配置数据库的 SQL 脚本。

创建 SQL 跟踪数据库

  • 在 Microsoft SQL Server 2005 Express、SQL Server 2000 或更高版本或 SQL Server 2000 Desktop Engine (MSDE) 中,使用以下 SQL 查询语句创建一个名为 Tracking 的新数据库。

    CREATE DATABASE Tracking
    

提示

如果在工作流应用程序中同时使用 SqlTrackingServiceSqlWorkflowPersistenceService,建议为持久性和跟踪使用单一数据库。

  1. 在 SQL 查询分析器工作区中,从可用数据库列表中选择在步骤 1 中创建的数据库。

  2. 在**“文件”菜单上,单击“打开”**并打开 SQL 脚本 %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<语言>\Tracking_Schema.sql

  3. 通过单击**“执行”**来执行查询,或按 F5 创建 SQL 跟踪服务表。

  4. 在**“文件”菜单上,单击“打开”**并打开 SQL 脚本 %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<语言>\Tracking_Logic.sql

  5. 通过单击**“执行”**来执行查询,或按 F5 创建 SQL 跟踪服务存储过程。

生成示例

  1. 通过单击**“下载示例”**来下载该示例。

    这会将示例项目提取到本地硬盘。

  2. 单击**“开始”,依次指向“程序”“Microsoft Windows SDK”,然后单击“CMD 外壳”[CMD Shell]**。

  3. 转到示例的源目录。

  4. 在命令提示符处键入 MSBUILD <解决方案文件名>

运行示例

  • 在 SDK 命令提示窗口中,运行 SimpleTrackingSample\bin\debug 文件夹(对于该示例的 VB 版本为 SimpleTrackingSample\bin 文件夹)中的 .exe 文件,该文件夹位于该示例的主文件夹下。

请参见

参考

SqlTrackingService
SqlTrackingQuery
SqlTrackingWorkflowInstance
ActivityEvents
ActivityTrackingRecord
WorkflowEvents
WorkflowTrackingRecord

其他资源

“跟踪”示例
“使用 SQLTrackingService 进行查询”示例
“使用用户跟踪点进行跟踪”示例
“EventArgs 跟踪”示例
ConsoleTrackingService 示例
“使用 SQLTrackingService 进行查询”示例
RuleActionTrackingEvent 示例
“文件跟踪服务和查询”示例
“使用跟踪配置文件对象模型”示例
“SQL 数据维护”示例

Footer image

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