Trace.axd--asp.net调试的新境界
在以往的经验中,很多时候,我们为了调试一个变量,会在页面中用Response.write输出一段字符串,以验证web程序是否运行到此处及是否正确获取了变量。也有人会调用封装好的js框架,alert或msgbox一条信息。这个在asp时代是最常见的方法。如果要调试比较复杂的信息,这种方法就显得有点力不从心。
不过,进入asp.net环境后,我们可以将这种方法彻底忘记。因为微软为我们提供了一个新的解决方案-Trace.axd
关于Trace.axd的官方说明,请查看MSDN:http://msdn.microsoft.com/zh-cn/library/6915t83k%28VS.80%29.aspx
它的功能主要是:配置 ASP.NET 代码跟踪服务以控制如何收集、存储和显示跟踪结果。
关键的几个选项:
1、localOnly,默认为false。这个很好理解。如果为true,只在本地输出跟踪信息。
2、enabled。是否启用跟踪。
3、pageOutput 指定在每一页的结尾是否呈现跟踪输出。如果是 false,则只能通过跟踪实用工具访问跟踪输出。
4、requestLimit 指定在服务器上存储的跟踪请求的数目。最大为10000,默认为10
5、traceMode 指定显示跟踪信息的顺序。SortByCategory或SortByTime(默认)
需要注意的是:
如果启用了对应用程序的跟踪,当请求任意页时,该页将收集跟踪信息并执行它所包含的任意跟踪语句。可以在跟踪查看器中查看跟踪输出。使用跟踪查看器,您可以在已从应用程序请求的页中选择特定的请求。
我们看一个简单的例子:
Vs2005/2008/vs2010环境下,新建一Web Appication,在默认的页面是添加简单的Label,TextBox,Button,提交一个最简单的请求。效果如下:
对应的web.config如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<trace enabled="true"
localOnly="true"
pageOutput="true"
requestLimit="15"
mostRecent="true" />
<compilation debug="true" />
<authentication mode="Windows" />
</system.web>
</configuration>
本文参考:
http://msdn.microsoft.com/zh-cn/library/6915t83k%28VS.80%29.aspx
另外,更专业的调试工具,可以使用httpwatch
http://www.httpwatch.com/