zoukankan      html  css  js  c++  java
  • 学习笔记: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

    流浪是注定的宿命;
    漂泊是无尽的轮回。
  • 相关阅读:
    java中不常见的keyword:strictfp,transient
    D3DXMatrixMultiply 函数
    expect
    char* 和char[]的差别
    下载安装tomcat6.0
    Eclipse或SVN—怎样在Eclipse中安装SVNclient插件
    sharepoint 訪问缩略图
    斜率优化专题1——bzoj 1597 [Usaco2008 Mar] 土地购买 题解
    phpmywind教程:关于日期函数调用整理
    linux服务之smtp
  • 原文地址:https://www.cnblogs.com/xpnew/p/1456828.html
Copyright © 2011-2022 走看看