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