All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP语法中基本符号及使用方法_[PHP教程]
使用div仿javascript模态窗口_JavaScript技术_编程技术
ASP.NET技巧:错误处理封装_[Asp.Net教程]_0
用perl来解析你的php文档_[PHP教程]
网页HTML教程:建立有亲和力的超级连接_[Html教程]
Linux环境下如何使用PHP处理图像_php资料_编程技术
ASP.NET技巧:存储过程的分析_[Asp.Net教程]
《Effective,C#》之减少装箱和拆箱_[Asp.Net教程]
下拉菜单的简单制作_JavaScript技术_编程技术
C#网络应用编程基础练习题与答案(四)_.net资料_编程技术
Reading number is top 10 pictures
王艳写真温柔如水1
China's first snake village1
中国女孩大胆自拍,显露完美身材
Ashlynn Brooke a group sexy photo4
Ashlynn Brooke photograph of a group2
The service WaLiangGe Chinese aircraft carrier1
刘亦菲写真集2
这年头,找个靠谱的妹子太难了
Nikon microscopic photography of the first three
Street street fighting
Download software ranking
C#高级编程(第4版)
Eclipse 4.2.2 For Win32
都市狐狸姑娘传
The Bermuda triangle2
Boxer's Top ten classic battle3
星际争霸1.08硬盘免安装版
C#程序员参考手册
Boxer's Top ten classic battle1
Call Of Duty5
美女写真2
delv published in(发表于) 2014/1/6 9:15:57 Edit(编辑)
追踪ASP.NET代码里的bug_[Asp.Net教程]

追踪ASP.NET代码里的bug_[Asp.Net教程]

追踪ASP.NET代码里的bug_[Asp.Net教程]

Web开发中一个棘手的问题是调试。在ASP或者简单JavaScript的时代,开发人员会利用print语句来追踪代码里的问题。随着微软引入ASP.NET,这一方法发生了改变,因为它包含了大量的特性,可以利用TraceContext类更加轻松地调试Web页面。

选择追踪的范围

在ASP.NET应用程序里,你可以启动对单个页面或者整个Web应用程序进行追踪的能力。Web.config这个文件用来启动在应用程序这一级别进行的追踪。下面就用到了web.config文件里的追踪元素:


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页面来查看追踪结果,这样用户就不会被打扰了。

最后,追踪特性会增加应用程序的负担,这反过来会影响到程序的性能。由于这个原因,你应该只有在需要的时候才在投入生产的应用程序里启动它,而且要(在追踪完成后)尽快禁用它。


--------------------------------------------------------------------------------
本文作者:Tony Patton的职业生涯开始于应用程序开发员,并已经获得了Java、VB、Lotus和XML的认证,以增加其专业知识。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.