技术开发 频道

asp.net中使用跟踪(trace)

  【IT168 技术文档】

  一、什么是“跟踪”

  跟踪是一种在应用程序运行时监视其执行情况的方式。当开发 .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。

  七、性能

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

0
相关文章