不要忘了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)请求详细信息
“请求详细信息”部分显示关于当前请求和响应的常规信息。
(2)跟踪信息“跟踪信息”部分显示页级事件流。如果创建了自定义跟踪消息,这些消息也将显示在“跟踪信息”部分。
(3)控件树“控件树”部分显示有关在页中创建的 ASP.NET 服务器控件的信息。
(4)会话状态“会话状态”部分显示有关存储在会话状态中的值(如果有的话)的信息。
(4)应用程序状态“应用程序状态”部分显示关于存储在应用程序状态中的值(如果有的话)的信息。
(5)Cookie 集合“请求 Cookie”和“响应 Cookie”部分显示对于每个请求和响应在浏览器与服务器之间传递的 Cookie 的有关信息。该部分既显示持久性 Cookie,也显示会话 Cookie。ASP.NET 自动创建一些 Cookie,如用于基于 Cookie 的会话状态和 Forms 身份验证的 Cookie。有关更多信息,请参见ASP.NET Cookies。
(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。
待续……
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方法中指定的自定义跟踪消息(如果有的话)。 |
自第一个跟踪语句以来的时间(秒) | 自处理第一条跟踪消息以来的运行时间(以秒为单位)。第一条跟踪消息显示在列表顶端。 |
自上一个跟踪语句以来的时间(秒) | 处理当前跟踪消息与处理上一个跟踪消息之间经过的时间(以秒为单位)。 |
控件 ID | 控件的标识。如果尚未指定控件的ID属性,则 ASP.NET 使用UniqueID属性生成ID。 |
类型 | 控件的完全限定类型。 |
呈现大小字节数 | 所呈现的控件(包括子控件)的大小(以字节为单位)。这是发送到浏览器的实际 HTML、XML 或其他格式的大小。 |
ViewState 大小字节数 | 控件的视图状态(不包括子控件)的大小(以字节为单位)。 |
ControlState 大小字节数 | 控件的控件状态(不包括子控件)的大小(以字节为单位)。 |
会话密钥 | 存储在会话状态中的数据的密钥(如果有的话)。 |
类型 | 存储数据的对象的完全限定类型。 |
值 | 存储在会话状态中的数据的字符串表示形式(如果有的话)。 |
应用程序键 | 存储在应用程序状态中的数据的键(如果有的话)。 |
类型 | 存储数据的对象的完全限定类型。 |
值 | 存储在应用程序状态中的数据(如果有)的字符串表示形式。 |
名称 | Cookie 的名称。 |
值 | Cookie 的值,如果 Cookie 为多值,则为子项和值。 |
大小 | Cookie 的大小(以字节为单位)。 |
名称 | 标头的名称。 |
值 | 标头的值。 |
名称 | 窗体变量的名称。 |
值 | 窗体变量的值。 |
名称 | 查询字符串变量的名称。 |
值 | 查询字符串变量的值。 |
名称 | 服务器变量的名称。 |
值 | 服务器变量的值。 |