教你Asp.net 调试大法 三招(必备)

用过ASP的人对它的调试应该是记忆深刻的。在整片整片的代码中找到那几个

出错的地方,难度可想而知。


第一招:配置web.Config


一般,当我们写好的网页运行出错了,ASP.Net就会在页面上告诉我们程序有

错了,但究竟错在哪里,它是没有提示的。为了能让ASP.Net进一步提示我们出错

的信息。我们就有必要编辑web.Config中的配置信息。


可能还有很多刚刚接触ASP.Net的人不太了解web.Config这个文件。那我就顺便介绍一下。web.ConfigASP.Net的一个配置文件,它里面存放着关于ASP.Net的所有配置信息。当执行一个ASP.Net页面时,它会先到该页面所在的目录查找这个文件,如果没有找到,就往上一级目录找,一直到wwwroot目录。如果都没有,它就会调用X:"WINNT"Microsoft.NET"Framework"v1.0.2204目录中的web.Config文件(X为系统目录)。所以,如果大家要想改变所有页面的配置,就应该改WINNT目录中的那个web.Config。另外顺便说一下,当你打开web.Config后,你会发现这是一个XML结构的配置文件。


好了,介绍解说这么多了,回到我们的主题。现在你要做的第一步就是:打

开或者新建一个web.config文件。我们分开来说:

如果是新建,你就需要用文本编辑器新建一个新的文档,然后往里面输入下

面的语句:

configuration>

customerrors mode="off">/customerrors>

/configuration>


输完后选择另存为,输入文件名web.config,将它保存到当前页面相同的文件夹中即可。如果是修改一个已经存在的web.config文件,你只需要用文本编辑器打开它,然后在<configuration>和</configuration>之间的任意地方输入:

customerrors mode="off">/customerrors>即可。


现在你可以在看一下出错页面的提示信息了。怎么样,不一样了吧!
 
    
上面我们说到配置web.config文件,让出错信息给出更多的提示。可光有

提示又有什么用呢?最多就是知道错在哪里,可我还是不会改呀!别急,别

急,看看咱们这篇文章叫什么来着,三板斧,那当然是一斧赛过一斧啦!上
 面
那招不够厉害,我们还有下面的那,所以别急啊,且听我慢慢道来。


第二招:Trace追踪


用过ASP的人应该都用过下面的语句吧:
 Response.Write XXX
 Response.End


虽然我不太喜欢ASP的编程方法,但是这种方便的调试手段还是很好的。换用
 ASP.Net
以后,我发现ASP.Net提供一种更强大的调试方法,它就是我们现在要说

Trace。所谓Trace功能就是在网页的最前面加上一些标记,至于是什么标记呢?
      嘿嘿,我不能马上告诉你
。要先介绍一点基础的知识啦!


我不知道大家对ASP.Net的页面标示了解多少,为了下面讲解的方便,我还是

概要的介绍一下吧!ASP.Net的页面标示指的是在每一个ASP.Net页面最上面,用

%@%>起来的语句。它的功能是用来确定在处理ASP.Net文件的时候,需要系

统做一些什么特殊的设定。具体的语法如下:

%@ directive attribute=value %>

其中:directive就是页面标示符;attribute是该标示符对应的一些属性。

注意:在属性之间需要空格,而在"="之间不能有空格。
 ASP.Net
现在包含以下7种标识
 @ Page,
 @ Control,
 @ Import,
 @ Registe,
 @ Assembly,
 @ OutputCache,
 @ Webservice


我们用得最多的就是@ Page标示,而现在我要讲的Trace功能,也要用到@ Page(关于这七个标示的具体应用,我会在以后发贴讲述的。)好了,回到我们的主题。要用Trace功能,你必须在页面的最上面加上:<%@ Page Trace="true" %> 这句话。加好后,你就可以看看页面的运行情况了。运行该页面。你会发现在页面的下半部分出现了一大堆的数据。下面就来解释一下这些数据的含义:
 Request Details:
通过Request方式向浏览器所读取的数据;
 Trace Information:
事件发生或程序执行的过程信息;
 Control Tree:
网页所使用的控件及控件之间的阶层关系;
 Cookies Collection:
网页所使用的Cookie信息;
 Headers Collection:
浏览器的表头信息。
 Server Variables:Server
变量的数据信息。


有了这一大堆数据,我们的工作就好做多了,但且慢欢喜,Trace还提供了更强大的功能,请接着看下去。


除了让ASP.Net页面显示这一堆数据外,我们还可以将程序中用到的变量的

值实时的显示在Trace Information区段中,其方法是调用Trace.WarnTrace.Write两个方法。他们的用法如下:
 Trace.Warn("Description",Variables);
 Trace.Write("Description",Variables);


我想你们一定会问,这两个有什么区别呢?回答是:在功能上,这两个是一模一样的,只是在显示上,Trace.Warn将会以红色字体表示。




前面介绍的两招功夫都是赤手空拳的较量,可能你会觉得打得不过瘾,咱能

不能挑件别的兵器什么的耍耍呢?既然是大家的需要,我又怎么能不满足呢?不

过,说起来还是的感谢盖茨大爷,要不我就没的耍了。好了,下面就是


第三招查错神器Debugger


要用好的兵器,没点准备是不行的,所以我们就先来做点准备运动。
 1.web.config
的设定:还记得第一招中讲的吗?对了,还是这个文件,打开它,向里面加入这条语句

compilation debugmode="true">/compilation>

说明:由于在预设情况下,ASP.Net会以正常模式来运行页面,为了能让它以查错模式编译网页,我们就必须加入这句语句。

 2.
启动查错工具DbgUrt.exe:这个程序放在x:"Program Files"Microsoft.Net"FrameworkSDK"GuiDebug目录里,文件名是DbgUrt.exe

 3.
激活查错功能:

运行DbgUrt.exe程序
 --
选取菜单Debug/Processes
 --
在出现的Processes对话框中选中Show system processesShow processes in all sessions
 --
Available processes列表框的最下面找到xspwp.exe(如果没有,请运行一.aspx页面,然后按Refresh键。)
 --
选取该文件后,按Attach
 --
在出现的对话框中选中Common Language Runtime,然后按OK,回到Processes对话框
 --
Close
 --
在程序的主菜单中选取File/Open/File,打开你想要检测的文件。


下面正式开始页面调试。

利用DbgUrt.exe打开欲调试的文件后,我们要做的第一件事情就是:设置断

点。是不是觉得和其它Windows应用程序的调试很像(什么很像?简直就是一模

一样吗!)加断点的方法很简单,先决定需要加断点的地方,然后将光标移动到

该行,按下F9或者在该行的最前面点击鼠标左键,该句前面就会出现一个问号的

标记,这就是断点!我们当然可以设定多个断点,只要你喜欢。你要是像取消一

断点,只需在该行重复设置断点的动作即可。


设置好断点后,只要使用浏览器浏览被调试的页面,当程序运行到断点的位

置时,它就会自动弹出DbgUrt.exe,并且停在刚才的断点位置。这是,我们就可

以利用Command Window-Immediate窗口检查变量的值了。


当我们想继续执行当前页面时,我们有几种选择:
 1
、按F5键,运行到下一个断点,若没有断点,则运行完该页面;
 2
、按F11键,执行单步操作;
 3
、按F10键,同样是单步操作,但它会进入子程序(函数)中的语句。


当然,DbgUrt.exe的功能肯定比我介绍的要强大的多。编写ASP.Net程序,有

这样的利器,真是省了我们很多时间啊!怎么还不快试试!

posted on 2008-03-25 09:31  leeyon  阅读(221)  评论(0编辑  收藏  举报

Leeyon&&&&&&&&&&&&&Anje