文章教程

7.4页面追踪

8/31/2020 9:37:14 PM 人评论 次浏览

7.4 页面追踪

在程序运行出现错误时,程序人员往往需要更多的信息来调试错误,或者了解错误出现的信息环境等。这样一个错误页面就不能完全满足程序调试的需要,还需要知道一个页面传递信息,会话信息等环境信息,这样系统为调试程序提供了一个页面追踪的设置。

7.4.1 启用页面追踪

在程序开发过程中,调试程序时如果想知道页面信息或其他信息,需要开启页面追踪选项,这个选择默认是不开启的,可以通过在页面头部的Page选项中开启此选项,也可以通过后台代码设置来开启此选项,代码如下。

页面头部设置开启:

alt

后台代码开启:

Page.Trace.IsEnabled = true;

页面追踪代码开启后可以查看到页面的所有详细信息,开启后效果如图7-15所示。

alt

图7-15 代码追踪开启后效果

7.4.2 页面追踪信息

在开启页面追踪后,系统会显示很多信息。

(1)请求详细信息。

这里的详细信息包括诸如当前Session ID、请求类型、请求时间、请求的状态、请求编码和响应编码格式等基本信息。这一些信息中,除了Session ID值比较有用外,其余的信息在调试过程中的作用不是很大。

(2)跟踪信息。

跟踪信息显示页面被发送到客户端之前,页面处理流程中不同的处理情形,并提供了页面执行的详细执行时长。

(3)控件树。

控件树用于显示页面上所有的控件,以缩放形式显示控件的层次结构,所有的控件都定义在Page标签中。ASP.NET同时对于空白和其他静态页面元素自动添加了literal控件进行显示,如控件中的ctl00、ctl01等。

(4)会话状态和应用程序状态。

显示当前应用程序中会话状态和应用程序状态集合中的每个项。

(5)请求Cookie集合和响应Cookie集合。

这两块信息显示发送到Web浏览器的请求Cookies信息,由Web服务器返回响应Cookies信息。

(6)标头集合。

这里列出所有的http头文件,从技术上来说,头信息是作请求的一部分发送到Web服务器的一小块信息,包括请求信息、支持的内容类型、使用的语言等。另外,响应头集合列表列出了作为响应发送到客户端的一部分信息。

(7)窗体集合。

窗体集合列出了页面回送的信息,窗体信息包括所有由Web控件提交的值,如TextBox中的文本以及在ListBox中选择的值等。

(8)QueryString集合。

列出所有查询字符串的名称和值,也可以从URL中直接查看这些值,但是如果查询字符串包含过多的信息,则在URL中难以明确详细的信息,可以通过QueryString集合来查看这些信息。

(9)服务器变量。

服务器变量列出了所有的服务器端变量和内容,通常不需要查看这些内容,如果需要编程控制服务器端变量,可以使用Request.ServerValiables集合控制服务器端变量。

7.4.3 写入页面追踪信息

在页面追踪的众多信息中,很多信息是基础信息,不经常用到,有时,尤其是在程序调试过程中,需要显示开发人员自定义的一些信息,如程序运行到某一时刻的变量值、运行状态等信息,这些信息是可以由开发人员自定义输入的,在页面追踪中为开发人员提供了两个方法,将程序信息写入页面追踪当中,它们是

alt

第一种方法输出到页面追踪信息为常规信息,第二种方法输出到页面追踪信息为红色提示信息,这有助于在调试程序时快速查找信息位置和内容,执行代码如下。

alt

执行后效果如图7-16所示。

alt

图7-16 突出显示用户自定义信息

7.4.4 应用程序页面追踪信息

在页面追踪中,不只能显示页面相关的信息,还可以追踪应用程序信息,但此信息不是存储在页面或数据库中,而且存储在服务器的内存中,需要通过修改Web.config配置文件才能查看,这些配置信息如下。

alt

在配置信息中,enabled表示启用应用程序最终;requestLimit表示可以接受的请求追踪信息,超过次数将自动替换旧信息;traceMode表示排序方式;localOnly表示在本地显示信息。访问信息文件为应用程序根目录下面的trace.axd文件,这个路径需要手动请求URL地址,因为是存储在服务器内存当中的,所以看不到实际文件。具体的信息如图7-17所示。

alt

图7-17 应用程序信息追踪概要信息

单击应用程序信息的概要信息列表中的查看详细信息链接,显示应用程序详细信息,如图7-18所示。

alt

图7-18 应用程序追踪详细信息

在应用程序追踪界面上,单击查看详细信息连接,可以查询具体的详细信息,这些信息比页面追踪的详细信息更详细,包括很多的敏感数据,所有这些信息都是在本地调试时才启用的,在系统正式上线以后,所有信息都将写入日志中,这样才比较符合编程习惯,也方便以后系统的修改和维护。

教程类别