ASP+ 跟踪

---摘自《www.aspgreat.com》（文/SunADM）
如何跟踪ASP程序的执行？我想很多人都用"Response.Write"来回答！毫无疑问，这不是个好现象 :( 作为ASP理所当然的扩展，它不叫ASP 4.0而叫 ASP+，那么ASP"+"到底提供了什么手段供我们这些"可怜虫"Tracing呢？也许这是ASP+最了不起的特性(针对ASP而言:p)——ASP+提供了内置的Tracing代码，而且它是加在ASP+页面当中的！？？(砖头？？:( 不要这样嘛！还没说完 ！)。它既可以使用在页面当中，也可以在整个应用程序使用。这就意味着你可以方便地在编写代码的时候将跟踪加入应用程序，在你发布/部署的时候关闭Tracing。当全部页面都被编译后，tace语句只对tracing打开的编译后代码产生影响。将tracing打开，你将在页面的最后取得一组表格，包含以下信息：
1、Request详情。包括Session ID，Status Code，时间等等
2、跟踪信息。显示跟踪信息的类别，信息，及其执行的时间
3、控件树。显示本页的控件，它们的ID以及它们多大
4、Cookies集合。显示Cookie名称，值，以及大小
5、Headers集合。显示HTTP头，例如host，referrer及user agent字串
6、Server变量。显示全部的Server变量集合。
如果你加入了自己的跟踪信息，它们将作为“跟踪信息”的一部分显示。
页面级的跟踪
使一个页面的跟踪有效，必须加入以下指示代码：
<%@ Page Trace="True" %>
也可以加入排序
<%@ Page Trace="True" Tracemode="SortByTime" %>
或者
<%@ Page Trace="True" Tracemode="SortByCategory" %>
默认是按时间排序的
Tracing语句：
Trace.Write ("我的程序","名字是"+txtName);
第一个参数是类别，第二个是跟踪信息
看下面的例子，可以在ASPGreat.com或dotNETCN.com的ASPX测试站点运行这段代码，地址：
http://61.142.73.250/test/pagetrace.aspx
<%@ Page Trace="True" %>
<html>
<head>
<title>使用跟踪</title>
</head>
<script language="c#" runat="server">
void Page_Load(Object Sender, EventArgs E) {
Trace.Write("跟踪", "在页面载入时");
}
void SubmitBtn_Click(Object Sender, EventArgs E) {
Trace.Write("按钮", "按钮按下");
Trace.Write("账号", "账号是：" + Name.Text);
Trace.Write("密码", "密码是：" + Password.Text);
YouEntered.Text = "你好！" + Name.Text + "。您的密码是 " + Password.Text;
}
</script>
<form runat="server">
<table border="0">
<tr>
<td>账号</td>
<td><asp:TextBox id="Name" runat="server" /></td>
</tr>
<tr>
<td>密码</td>
<td><asp:TextBox id="Password" TextMode="Password"
runat="server" /></td>
</tr>
<tr>
<td></td>
<td><asp:Button id="SubmitDetailsBtn" text="提交"
onclick="SubmitBtn_Click" runat="server" /></td>
</tr>
</table>
<p><asp:Label id="YouEntered" runat="server" /></p>
</form>
</body>
</html>
这样，你就能看到到底在页面中发生了什么事情
应用程序级跟踪
打开应用程序级跟踪，ASP+将记录页面跟踪信息
要打开应用程序跟踪，只需在该应用程序根目录下修改ASP+配置文件config.web，
加入：
<configuration>
<trace enabled="true" />
</configuration>
即可。
访问跟踪信息的方法访问应用程序目录的trace.axd
如：http://61.142.73.250/test/trace.axd
在这里，你将看到每个Request的列表，点击 view details将看到详细的Trace信息