您的位置:逆风者 VC++ 正文
 添加时间:2007-09-01 原文发表:2007-08-31 人气:12 来源:vckbase.com

本文章共14643字,分10页,当前第6页,快速翻页:
 

   需要注意的是 ASP.NET 提供了自己的跟踪工具,不同于框架中 System.Diagnostics 名字空间所提供的。在 ASP.NET中,如果你的代码运行在 Web Form 中 ,你可以通过 HttpContext.Current.Trace 或者 Page.Trace 实现跟踪。由某些属性返回的 TraceContext 类 公开了两个方法可以写输出消息:Write 和 Warn。所有输出在程序虚拟目录的 trace.axd 页中可以看到。
逆风者
   两个方法之间唯一的差别在于使用 Warn 方法输出的消息在 trace.axd 日志中以红色显示。在当前输出已满时你可以转储 ASP.NET 跟踪输出到 相应流中,使得消息被追加到每页的最后。这只对调试有用,不能用在常规的产品检测中。每个 ASP.NET 请求也会对一些额外的有用信息进行日志。比如当前会话 ID、时间 、HTTP状态代码和标题以及被显示的 cookies。
   缺省情况下,System.Diagnostics 跟踪系统和 ASP.NET 跟踪系统没有任何联系。写到一个系统中的消息决不会转发到另一个系统中。然而可以相当容易的写一个自定义的监听器 来驱动所有跟踪和调试消息都到 ASP.NET 跟踪系统中。如果你这样做了,一定要检查当前 HttpContext 是否存在。
   在写自定义的监听器时,有几个问题需要明白。比如,如果你要使用性能计数器和事件日志的话,需要创建计数器和事件源,你需要编写访问注册表的功能(像前面提到的 那样)。在 ASP.NET 缺省帐户下,出于安全考虑这是不可能实现的,所以在使用之前你必须安装程序和进行正确的设置。如果有可能,与其编程,还不如用 web.config 配置你的跟踪监听器 ,以便在部署后可以通过修改 web.config 或者 <appname>.config 来添加或删除监听器, 就象下面这样:
<system.diagnostics>

    <trace autoflush="true" indentsize="0">

        <listeners>

            <add name="CustomListener",                          

                       type="MyLibrary.Class1,MyLibrary"/>

        </listeners>

    </trace>

</system.diagnostics>

  add 元素中的 type 属性必须被设为监听器的完全限定类型名字。当使用 ASP.NET 跟踪时,所有的跟踪调用日志都在内部记录,可以通过内置的 IHttpHandler 显示,IHttpHandler 暴露了一个http://yourservername/yourapp/trace.axd 跟踪数据。
  这里 记录日志的最多请求个数缺省值是10,但是在 web.config 中可以改为其它值,像下面这样:
<trace

        enabled="true"

        requestLimit="15"

        pageOutput="false"

        traceMode="SortByTime"

        localOnly="true"

/>

  不幸的是,使用 ASP.NET 跟踪后,你不能再使用自己的跟踪处理器来处理输出消息。另外,可能也是更加重要的问题,那就是在你开发的类库中不能假定已经得到了可使用的 HttpContext 对象。如果你开发了一个能够被服务器应用程序配置采用的一般类库,在试图得到当前的 TraceContext 时你总需要检查 HttpContenxt.Current 是否是一个有效的引用。
   一旦请求个数超过了 RequestLimit 的限制,对于有价值的跟踪信息你也不能再进行日志了。这种放弃跟踪对于现存的问题诊断是没有用的 ,因为在你想查看的请求之前很有可能还有上千个请求,而除了给定的页去跟踪请求之外你又没有其它的工具。因此在代码中检查正确的控制流对于调试情况是一种更加有用的技术。
   使用 ASP.NET 跟踪的一个更一般的问题是你必须在配置文件中明确地打开它。然而,当你这样做完后便会导致程序重启。对于配置应用程序检测来说 ,这样做比较笨。而如果要调查瞬间情况,而它又必须获取当前应用程序的状态信息,那么这样做真是个问题。
 
本文章更多内容<<上一页 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 下一页>>
相关文章

一个生成公章图片的简易工具
KVIP考勤系统
Windows SDK笔记(七):创建MDI窗口
基于 SSL 的 ASP.NET Web 应用测试自动化
层叠式窗体控件指南
连接 COM 与 .NET 的桥梁(一)——预备知识
在Visual C 中定制AppWizard (一)
VC中调用EXECL模板生成报表
Brew 后台应用开发
浅谈PDFlib中文输出(二)如何在PDFlib中使
谈谈软件项目管理的重要性
简单快速的哈夫曼编码
自己编的SQL服务端加客户端
多功能标签CLabelEx
IE 控件一些高级使用方法
用VC 创建自定义向导程序
如何在 Windows NT、Windows 2000 和 Windo
对C#中的TreeView加背景图
static_cast<>揭密
自己写 FILTER 改变画面颜色

相关评论


本文章所属分类:首页 VC++

  热门关键字: