学习笔记:asp.net中使用跟踪(trace)

学习笔记:asp.net中使用跟踪(trace)

主要内容:

什么是“跟踪”
为什么要使用跟踪?
开启页面内的跟踪
开启整个网站的跟踪
查看跟踪信息
开启跟踪后和asp.net ajax冲突怎么办

一、什么是“跟踪”(来自于MSDN)
跟踪是一种在应用程序运行时监视其执行情况的方式。当开发 .NET 应用程序时,可以在其中添加跟踪和调试检测功能,并且在开发应用程序时和部署应用程序后,都可以使用该检测功能。利用 Trace 和 Debug 类,可以将有关错误和应用程序执行的信息记录到日志、文本文件或其他设备中,以便在随后进行分析。

二、为什么要使用跟踪?
在asp的时代,如果需要了解程序在运行时的某些状态、变量的值,通常都是在页面上采用Response.Write来输出的方式。这么做的原因,绝大多数都是因为asp薄弱的运行、开发环境造成的。这这样的做的结果是,随意在页面上输出造成页面的混乱不说,程序中添加的Response.Write还非常不容易管理,一旦有什么遗漏的话,就会给客户造成不必要的误解。
而asp.net的跟踪功能,不仅可以在程序运行的各个阶段,跟踪程序的状态和变量的值,另外,它还有asp.net本身所支持的各项管理功能。它可以和Aspx页面一起显示,也可以通过专门的方式在另外的地方呈现。据我目前所知,它有以下优点:

1、既可以整个网站统一管理,也可以在单个页面启动。通过配置web.config,可以启用整个网站的跟踪,也可以在页面上采用。

2、不影响页面的布局和呈现。

3、全面反映cookies和session的状态,这是我第一次采用跟踪的一个原因。

4、完整的反应各个页面事件的过程和执行的时间。

三、开启页面内的跟踪

1、在<@page>中采用Trace="true"

2、在代码里添加“Trace.IsEnabled = true;”

3、添加自己的跟踪信息:
            Trace.Warn("abc");   //Warn 显示的是红色的信息
            Trace.Write("def");   //write显示的是普通颜色的信息
四、开启全站的跟踪

在web.config中添加
<system.web>
 <trace enabled="true" />
</system.web>

五、查看跟踪信息

1、如果开启了页面内的跟踪,那么跟踪信息可以直接在页面内容的下面显示出来。

2、如果开启了全站的跟踪,可以通过“http://网站名/”或者“http://网站名/站点名/” (vs 2005里面新建的网站,在调试的时候就是以后者的形式出现的) 后面跟上“trace.axd”来查看。例如:http://localhost:5508/trace.axd

3、开启全站跟踪并且显示在页面:

<system.web>
 <trace enabled="true" pageOutput="true" />
</system.web>


4、开启全站跟踪并且显示在“输出”窗口:

<system.web>
 <trace enabled="true" pageOutput="false" writeToDiagnosticsTrace="true"/>
</system.web>

<system.diagnostics>
 <trace>
  <listeners>
   <add name="consolse" type="System.Diagnostics.ConsoleTraceListener"/>
  </listeners>
 </trace>
</system.diagnostics>


六、开启跟踪后和asp.net ajax冲突怎么办

在使用UpdatePanel的页面上开启了页面跟踪或者开启了全站跟踪时,pageOutput="true"就会出现Sys.WebForms.PageRequestManagerParserErrorException异常。
原因是页面跟踪时有Response.Write。
解决办法是,不用页面跟踪或者全站跟踪时,pageOutput="false"。需要查看跟踪信息时,用trace.axd。

 

七、性能
网站开启了跟踪,那么肯定是要低性能的。
但是在页面添加一些自定义的跟踪信息,应该对性能的影响很微小了。


附录

1、如何:使用跟踪查看器查看 ASP.NET 跟踪信息

http://msdn.microsoft.com/zh-cn/vcsharp/wwh16c6c(VS.80).aspx

2、《Essential ASP.NET 2.0中文版 》7.11  ASP.NET 2.0中的跟踪

http://book.csdn.net/bookfiles/392/10039214519.shtml

3、UpdatePanel 出现了Sys.WebForms.PageRequestManagerParserErrorException异常

Microsoft JScript 运行时错误: Sys.WebForms.PageRequestManagerParserErrorException: 无法分析从服务器收到的消息。之所以出现此错误,常见的原因是: 在通过调用 Response.Write() 修改响应时,将启用响应筛选器、HttpModule 或服务器跟踪。详细信息: 分析附近的“XXX|XXX|XXX”时出错。


http://www.cnblogs.com/simplenl/archive/2008/08/12/1266120.html


文章中提到了出现异常的各种原因,其中之一就是开启了网页的trace


4、MSDN:《跟踪应用程序和在应用程序中插入检测点》《ASP.NET 跟踪概述》

ms-help://MS.MSDNQTR.v90.chs/dv_fxdebug/html/773b6fc4-9013-4322-b728-5dec7a72e743.htm

ms-help://MS.MSDNQTR.v90.chs/dv_vwdcon/html/1552561d-887c-4002-8770-f92662cdf416.htm#ReadingTraceInformation

 

posted @ 2009-05-14 14:53  柳城之城  阅读(1419)  评论(0编辑  收藏  举报