当前位置:   首页安装配置追踪ASP.NET代码里的bug_追踪页面

追踪ASP.NET代码里的bug_追踪页面

发布日期:2021-06-12 12:52 | 文章来源:脚本之家

Web开发中一个棘手的问题是调试。在ASP或者简单JavaScript的时代,开发人员会利用print语句来追踪代码里的问题。随着微软引入ASP.NET,这一方法发生了改变,因为它包含了大量的特性,可以利用TraceContext类更加轻松地调试Web页面。 选择追踪的范围 在ASP.NET应用程序里,你可以启动对单个页面或者整个Web应用程序进行追踪的能力。Web.config这个文件用来启动在应用程序这一级别进行的追踪。下面就用到了web.config文件里的追踪元素: <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" / 现在让我们更加仔细地看看其各个属性: enabled:用来启动(真)和关闭(伪)应用程序这一级别的追踪。 requestLimit:用来描述保存在内存里的追踪数量。 pageOutput:用来指示追踪信息需要(真)还是不需要(伪)附加在每页之后。如果选择了伪,那么追踪信息可以在专门的追踪页面——trace.axd里查看。 traceMode:用来确定如何显示追踪信息。在缺省状态下,它被设置为按时间顺序显示,但是它也可以按类别(SortByCategory)显示。 localOnly:用来指示远程调试可用(伪)或者不可用(真)。 然而,如果应用程序里只有一个页面,那么你就会在追踪的时候碰到问题。在这种情况下,你可以在页面的命令里加上下面的追踪属性,启动对单个页面的追踪: <%@ Page language="c#" trace="true" tracemode="SortByCategory" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1" % 要注意trace和tracemode属性会和它们在web.config文件里对应的属性发生冲突。如果你还不清楚哪个设置是优先的,那么我告诉你,页面设置会取代web.config的设置,所以你在追踪整个应用程序的时候要启动它,而在追踪所选页面的时候禁用它。是选择页面还是应用程序这一级别(或者是把两者结合起来)进行追踪要根据情况来决定。 处理输出 一旦决定了需要追踪的级别,你就要开始接收追踪的结果了。如果是正在追踪整个应用程序,那么你可以在trace.axd页面里查看所有的追踪结果(具体有多少要取决于你用requestLimit属性维持的数量)。同样的,对单个页面的追踪进行完之后,你可以查看单个页面的追踪。 追踪的输出结果分为五个部分: 请求细节(Request Details):这一部分包括会话的ID、请求时间、编码、请求类型(get、post等等),以及状态码。 追踪信息(Trace Information):用来显示请求的细节,这包括和ASP.NET页面相关的各种事件。 控件树(Control Tree):用来显示页面内使用的控件;这包括其大小和保存在ViewState里的相关字节数。 Cookie集(Cookies Collection):页面所用的cookie的列表。 标题集(Headers Collection):和请求相关的HTTP标题,包括主机(Host)、Cookie和用户代理(User-Agent)。 主机变量:和请求相关的主机环境变量的完整列表。 在下面的例子里,我列出了追踪结果的一部分信息。(它包括追踪结果的标题集部分。) Headers Collection Name Value Connection Keep-Alive Accept */* Accept-Encoding gzip, deflate Accept-Language en-us Cookie ASP.NET_SessionId=vnadwr45jvrfhv55gbdygobs; LastVisited2=3/1/2004 2:11:35 PM Host localhost User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322) 从这个追踪结果可以看出,发出请求的客户端使用英语和Internet Explorer 6.0,并安装了.NET框架1.1。 加入用户信息 缺省的追踪能力在很多情况下都很有用处,但是其他的情况可能要求获得页面的更多信息。你可以利用TraceContext类的Write(写入)和Warn(警告)方法向追踪日志里添加用户信息: Write:向追踪日志写入信息。 Warn:向追踪日志写入信息,但是用红色显示写入的信息。 每种方法都在承担着多种任务,大多数基本的句法都会接受简单的信息并将其插入到追踪日志里。这些方法让你能够很轻松地在需要的地方放上Trace.Write和Trace.Warn语句,从而向追踪输出里加入用户信息。其输出被包括在追踪输出的追踪信息部分里。(我觉得使用Warn方法可以更容易地找到我添加的内容,因为它们是以红色显示的。) 不需要重新编译 另一个非常好的特性是,在完成追踪之后,你不需要删除追踪元素;只需要禁用追踪就行了,这样追踪语句会被忽略。当产品中出现问题的时候,其优势就体现出来了。一旦转化成为了产品,你可以激活在应用程序这一级别的追踪,而不对单个页面进行追踪(把pageOutput设置成伪),并通过trace.axd页面来查看追踪结果,这样用户就不会被打扰了。 最后,追踪特性会增加应用程序的负担,这反过来会影响到程序的性能。由于这个原因,你应该只有在需要的时候才在投入生产的应用程序里启动它,而且要(在追踪完成后)尽快禁用它。

版权声明:本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

联系我们
关于使用场景和技术架构的更多咨询,请联系我们的销售和技术支持团队。
Yingsoo Host

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部