检索 Windows Server AppFabric 监控存储的跟踪变量
本示例显示如何使用实体框架检索和反序列化来自 AppFabric 监控数据库中跟踪的工作流变量。您将会了解监控数据库显示的某些公共视图,以便使用。本示例适用于任何应用程序。我们建议使用常见 Windows Server AppFabric 示例应用程序,它是特为 AppFabric 示例而创建的。若要找到此应用程序,请导航到 <samples>\SampleApplication\OrderApplication 文件夹,其中 <samples> 是 AppFabric 示例的安装路径。
备注
提供这些示例仅是为了教育目的。它们不能用于生产环境,并且尚未在生产环境中进行测试。Microsoft 不对这些示例提供技术支持。
先决条件
配置具有监控的 Windows Server AppFabric 安装。
AppFabric 中至少托管了一个 WCF 或 WF 服务。
备注
如果服务配置为跟踪复杂类型变量,本示例对监控功能更具有说服性。
如果您从程序集中将跟踪的变量反序列化,请确保将程序集(例如,AppFabric 示例应用程序)作为引用添加到此项目中,以便它可以正确反序列化这些对象。
示例文件
本示例附带以下文件:
VS 2010 解决方案结构和支持代码文件
TrackedWFVariable.cs
Program.cs
设置和运行此示例
请确保已对变量进行跟踪并存储到监控数据库中。您可以通过检查 WFEventProperties 视图和确保是以行的方式显示,然后进行操作。
打开本示例附带的 Visual Studio 解决方案。
要点 请确保您在对 AppFabric 监控数据库具有读取权限的帐户下运行。 编辑 Program.cs 中的数据库值以便指向所需的数据库。
编辑传递给 Program.cs 中 AppFabricMonitoringEntities 构造函数的值。默认情况下,它指向 SQL Express 实例。为了简便起见,在该文件的顶部已经包含一个标准的 SQL 实例名称。
按 F5 生成并运行示例。
了解本示例
Program.cs 使用实体框架查询数据库中最近使用的工作流事件。TrackedWFVariable 类使用实体框架数据上下文进行连接以检索与最近事件相关的任何 WFEventProperty 行。然后,属性反序列化到其原始 .NET 类型。根据进行反序列化对象的类型,此过程不同。
以下类型存储为使用 WFEventProperties 视图值列表式的简单字符串:
System.String
System.Char
System.Boolean
System.Int32
System.Int16
System.Int64
System.UInt32
System.UInt16
System.UInt64
System.Single
System.Double
System.Guid
System.DateTimeOffset
System.DateTime
通过调用类型定义的静态 Parse 方法,将字符串值传递为参数对这些类型进行反序列化。所有其他类型都会将其值存储在 WFEventProperties 视图的 ValueBlob 列中,并且使用 System.Runtime.Serialization.NetDataContractSerializer 进行反序列化。这要求必须加载声明对类型进行反序列化的程序集。使用此种方式将对象存储在数据库中,以便 SQL 客户端可以轻松查询上述列出的较为简单的类型。
删除本示例
本示例不会保存任何项目。如果需要,可以删除本示例文件
2011-12-05