检测:.NET中强大的检测选项让你有信心建立易管理的应用程序(7)
添加时间:2007-09-01 原文发表:2007-08-31 人气:12 来源:vckbase.com
本文章共14643字,分10页,当前第7页,快速翻页:
| | 信息太多也会成为问题——当使用诊断调试时,并没有提供过滤机制,除非你在代码中使用了小粒度跟踪级别和跟踪开关。你要产生的信息量是无法估量的。尤其
在没有使用持久性日志存储的情况下,比如文件,没有工具能够有效的处理它们。
逆@风@者
我已经讨论过了有效地使用 SEH。然而,那并不意味着它是一种检测工具。你不再会为了信息类型日志而委屈代码抛出异常,这减少了异常是为基于 CLR
的代码而设计的这一透明度。另外它也伤害了性能。
WMI 强大的特点就是能够为你的程序提供检测规则,即计划(schema)。这个计划定义了你所提供的检测。它用事件和数据类进行定义。.NET通过这些计划内容为程序提供简单的控制。WMI 是已讨论过的日志方案的补充。比如,事件日志信息和性能计数器能够被 WMI 访问。这意味着如果你已经使用了这些
机制,你现在就可以使用 WMI 了。WMI 开发包(SDK)提供了不同的工具,如基于浏览器的CIM studio,这样你就能够检查程序的检测结果(和查询计划)。许多
工业级的工具都是基于 WMI 的,像 Microsoft Operations Manager(MOM),HP 的 OpenView 和 IBM 的 Tivoli 产品。在.NET的 System.Management 名字空间中提供的 WMI 类可以让你引发自己的事件及提供管理
控制手段。
System.Managment 提供到 WMI 的自然映射体系。WMI 类变成了 .NET Framework 类。性质
和属性变成了域和限定符。.NET
Framework 数据类型清晰地映射到 WMI 数据类型,包括字符串和数组。
托管世界
由于有了 EIF,.NET为这些工具提供了更加强大的能力。它建立在 WMI 之上,更加容易使用。虽然 EIF 戏剧性地减少了 WMI 的开销,但它没有包括在 .NET
Framework 中或 者 Visual Studio® 中。直到现在也无法得到,除非你是 msdn 订阅者,所以它还没有进入主流。但这很快就会改变,特别是
由于有了 Microsoft Patterns and Practices 组发布的新的 Logging Application Block。[MSDN
编辑更新(3/26/2004):EIF 现在已经可以从 Microsoft Enterprise Instrumentation
Framework
下载]
WMI 是所有这些的基础,因为它被设计成具备可伸缩性,不需要停止应用程序便可重新配置,相对于基于 web.config/app.config 的方案或者 #define TRACE 和 DEBUG 来说是一个很好的选择。
EIF 提供了 Microsoft.EnterpriseInstrumentation 名字空间。有两个重要的构造函数:事件源和接收器(sinks)。事件源是一个事件的创造者或发布者。通过
关联的事件接收器配置来区分。接收器使用和处理事件。例如,通过将这些记录到 Windows 事件日志或数据库来完成。EIF 中的事件可以是显式的或隐式的。
它以类的形式提供了四个隐式事件:TraceMessageEvent、ErrorMessageEvent、AuditMessageEvent 和 AdminMessageEvent。
为了使用这些事件,所有事件接收器必须派生自 EventSink 抽象类,它有一个静态方法Raise。EIF 提供了三个事件接收器:Windows Trace、Event Log 和 WMI。Windows 跟踪作为一种服务实现,运行在核心模态来优化性能。Event Log 接收器直接
将事件中转到 Windows Application Event Log,WMI 接收器为记录事件日志
而使用 WMI。EIF 的强大在于你编写访问事件的代码的样式总是一样的。这使得代码的检测
尽可能容易。你所要做的只是调用事件的静态方法 Raise,就像下面这样:
Imports Microsoft.EnterpriseInstrumentation
TraceMessageEvent.Rasie("Hello World");
你也可以定义你自己的接收器来扩展或加入一些功能。EIF是安装感知的,会创建一个EnterpriseInstrumention.config 文件,你可以手动或者用 EIF API 配置类来编辑。 本文章更多内容:<<上一页 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 下一页>> |
 本文章所属分类: 首页
→ VC++
|
文章搜索
热门文章
推荐文章
最新文章
|