不要忘了ASP.NET跟踪模式

一、ASP.NET跟踪模式

1.介绍

提到ASP.NET跟踪模式,不能不提到ASP程序。ASP程序中在WEB页面上显示出某些变量当时的值,常常使用Response.Write进行输入,这在ASP程序中确实是一种很好的解决方案,但是,由于ASP.NET运行机理,这种方法在ASP.NET中会存在不少问题。问题总是要解决,ASP.NET推出了允许直接在代码中编写调试语句的新功能,从而在将应用程序部署到生产服务器时,无需将它们从应用程序中移除,该功能叫做跟踪。它允许在页中编写变量或结构、判断是否符合某个条件,或只是通过页或应用程序的执行路径进行跟踪。为了收集并显示这些消息和其他跟踪信息,必须启用页或应用程序的跟踪,即在@Page指令中设置Trace属性为true,默认为false。

2.启用跟踪会发生什么

当启用跟踪时,ASP.NET将将为我们做两件很重要的事情:

    (1)ASP.NET将一系列诊断信息表紧接着追加在页输出之后。还将该信息发送到跟踪查看器应用程序(只有当已启用了应用程序的跟踪时)。

    (2)ASP.NET在追加性能数据的Trace Information表中显示自定义诊断消息。指定的诊断信息和跟踪消息追加在发送到请求浏览器的页输出中。或者,可以在单独的跟踪查看器(trace.axd)中查看该信息,该查看器显示给定应用程序中每页的跟踪信息。当ASP.NET处理页请求时,该信息可以帮助查清错误或不希望得到的结果。

  只有在启用了跟踪后才处理并显示跟踪语句。可以控制是否将跟踪显示到页上、显示到跟踪查看器或既显示到页上又显示到跟踪查看器。

3.ASP.NET 跟踪信息

可以在 ASP.NET 页的末尾或跟踪查看器中查看追加的跟踪信息。两种情况下显示的信息是相同的。ASP.NET 将跟踪信息组织在一系列的表中。跟踪信息按下列顺序显示:

(1)请求详细信息

“请求详细信息”部分显示关于当前请求和响应的常规信息。
说明
会话ID 指定请求的会话标识。
请求的时间 发出请求的时间。
请求编码 请求的字符编码。
请求类型 HTTP方法(GET或POST)。
状态代码 与响应关联的状态代码值。有关更多信息,请参见位于World Wide Web Consortium (W3C) Web site(万维网联合会(W3C)网站)上的RFC 2616。
响应编码 响应的字符编码。


(2)跟踪信息“跟踪信息”部分显示页级事件流。如果创建了自定义跟踪消息,这些消息也将显示在“跟踪信息”部分。
类别 Warn或Write方法调用中指定的自定义跟踪类别(如果有的话)。
消息 Warn或Write方法中指定的自定义跟踪消息(如果有的话)。
自第一个跟踪语句以来的时间(秒) 自处理第一条跟踪消息以来的运行时间(以秒为单位)。第一条跟踪消息显示在列表顶端。
自上一个跟踪语句以来的时间(秒) 处理当前跟踪消息与处理上一个跟踪消息之间经过的时间(以秒为单位)。
(3)控件树“控件树”部分显示有关在页中创建的 ASP.NET 服务器控件的信息。
控件 ID 控件的标识。如果尚未指定控件的ID属性,则 ASP.NET 使用UniqueID属性生成ID。
类型 控件的完全限定类型。
呈现大小字节数 所呈现的控件(包括子控件)的大小(以字节为单位)。这是发送到浏览器的实际 HTML、XML 或其他格式的大小。
ViewState 大小字节数 控件的视图状态(不包括子控件)的大小(以字节为单位)。
ControlState 大小字节数 控件的控件状态(不包括子控件)的大小(以字节为单位)。
(4)会话状态“会话状态”部分显示有关存储在会话状态中的值(如果有的话)的信息。
会话密钥 存储在会话状态中的数据的密钥(如果有的话)。
类型 存储数据的对象的完全限定类型。
存储在会话状态中的数据的字符串表示形式(如果有的话)。
(4)应用程序状态“应用程序状态”部分显示关于存储在应用程序状态中的值(如果有的话)的信息。
应用程序键 存储在应用程序状态中的数据的键(如果有的话)。
类型 存储数据的对象的完全限定类型。
存储在应用程序状态中的数据(如果有)的字符串表示形式。
(5)Cookie 集合“请求 Cookie”和“响应 Cookie”部分显示对于每个请求和响应在浏览器与服务器之间传递的 Cookie 的有关信息。该部分既显示持久性 Cookie,也显示会话 Cookie。ASP.NET 自动创建一些 Cookie,如用于基于 Cookie 的会话状态和 Forms 身份验证的 Cookie。有关更多信息,请参见ASP.NET Cookies。
名称 Cookie 的名称。
Cookie 的值,如果 Cookie 为多值,则为子项和值。
大小 Cookie 的大小(以字节为单位)。
(6)标头集合“标头集合”部分显示关于请求和响应消息的标头名称/值对(提供关于消息体或所请求的资源的信息)的信息。标头信息用于控制请求消息的处理方式和响应消息的创建方式。有关 HTTP 标头的更多信息,请参见位于 World Wide Web Consortium (W3C) Web site(万维网联合会 (W3C) 网站)上的 RFC 2616。
名称 标头的名称。
标头的值。
(8)窗体集合“窗体集合”部分显示名称/值对,这些名称值/对显示在 POST 操作(回发)期间的请求中提交的窗体元素值(控件值)。
名称 窗体变量的名称。
窗体变量的值。
(9)Querystring 集合“Querystring 集合”部分显示在 URL 中传递的值。在 URL 中,查询字符串信息通过问号 (?) 与路径信息分隔开;多个查询字符串元素用 & 符分隔开。查询字符串名称/值对以等号 (=) 分隔。HttpRequest对象的QueryString属性返回查询字符串变量的NameValueCollection。
名称 查询字符串变量的名称。
查询字符串变量的值。
(10)服务器变量“服务器变量”部分显示服务器相关的环境变量的集合和请求标头信息。HttpRequest对象的ServerVariables属性返回服务器变量的NameValueCollection。
名称 服务器变量的名称。
服务器变量的值。
待续……
posted @ 2009-03-21 22:35  网者风  阅读(145)  评论(0编辑  收藏  举报