Windows Workflow Foundation中的跟踪服务2011-01-25 MSDN Matt Milner目录跟踪体系结构跟踪配置文件SQL 跟踪服务查询跟踪数据自定义跟踪服务Windows Workflow Foundation 中最强大的功能之一是跟踪。它使您能够监控事件、活动属性以及您的工作流中的自定义数据。在本专栏中,我将检查跟踪基础结构、向您介绍如何使用内置的基于 SQL Server™ 的跟踪服务以及如何为各种应用创建自定义跟踪服务。顺着这一思路,我将演示如何使用所跟踪的信息以及如何通过使用跟踪来满足一些常见的需求。许多应用程序需要了解程序逻辑和处理步骤的执行。这有助于企业遵守法规,根据执行里程碑或各种其他原因来管理风险列表。Windows® Workflow Foundation 提供了灵活的基础结构,您可以在其中覆盖您的自定义实现,而不必为各应用程序创建不同的跟踪系统。这简化了开发模型,使您可以关注于跟踪的业务要求。跟踪体系结构当在 Windows Workflow Foundation 中承载工作流时,您既可以承载工作流运行库,也可以承载一组运行时服务。许多运行时服务(如持久性服务)必须最多有一个在运行库中注册的实例。跟踪服务是个例外,允许将多个跟踪服务添加到运行库中以支持不同的业务要求。这使您能够将若干不同的跟踪任务应用于一个应用程序,各跟踪服务负责特定的实现。Windows Workflow Foundation 中的跟踪基于中央侦听器,侦听器可监控活动和工作流事件并将相应的数据发送到各个配置的跟踪服务。(这种体系结构如图 1 所示。)跟踪侦听器接收所有事件的通知,但多数情况下,只有这些事件中的一个子集是有用的。而且,如果您要使用多个跟踪服务,各任务有可能将只关注于唯一一个信息子集。因此,跟踪侦听器将查询各配置的跟踪服务以跟踪各类工作流的配置文件。

图 1跟踪体系结构跟踪配置文件为侦听器提供关于跟踪服务要接收的事件的类型的信息。这些事件可以分为三类:工作流、活动和用户。工作流事件使您能够跟踪工作流可能处于的各种状态,以及它们发生的时间。对于包含自定义事件参数的事件,如 WorkflowTerminated 或 WorkflowCompleted,事件参数本身可被跟踪,并随后被查询。活动事件使您能够跟踪活动进入特定状态的时间和活动进入该状态时具体的活动属性值。例如,如果您有一个发送电子邮件的活动,当活动进入 Closed 状态时,您可以跟踪 To 地址属性。最后,用户事件使您可以在您的工作流或活动中手动跟踪数据。