首页 > 编程 > .NET > 正文

关于在ASP.NET 中进行调试的方法(转载自itpeople),不过我个人对第三招不以为然,有了v

2024-07-10 12:58:19
字体:
来源:转载
供稿:网友
    用过asp的人对它的调试应该是记忆深刻的。在整片整片的代码中找到那几个
出错的地方,难度可想而知。现在微软推出了asp的更新换代产品asp.net。对于
asp.net的好处,我想很多网站都已经介绍了差不多的,不过对于asp.net的调试
讲得就不是很多了。所以,我就以我的一点个人经验写了这一篇文章。由于,我
也是接触asp.net不久,错漏之处在所难免,还请大家多多指正。好了,言归正传。

第一招:配置config.web

    一般,当我们写好的网页运行出错了,asp.net就会在页面上告诉我们程序有
错了,但究竟错在哪里,它是没有提示的。为了能让asp.net进一步提示我们出错
的信息。我们就有必要编辑config.web中的配置信息。

    可能还有很多刚刚接触asp.net的人不太了解config.web这个文件。那我就顺便介绍一下。config.web是asp.net的一个配置文件,它里面存放着关于asp.net的所有配置信息。当执行一个asp.net页面时,它会先到该页面所在的目录查找这个文件,如果没有找到,就往上一级目录找,一直到wwwroot目录。如果都没有,它就会调用x:/winnt/microsoft.net/framework/v1.0.2204目录中的config.web文件(x为系统目录)。所以,如果大家要想改变所有页面的配置,就应该改winnt目录中的那个config.web。另外顺便说一下,当你打开config.web后,你会发现这是一个xml结构的配置文件。

    好了,介绍解说这么多了,回到我们的主题。现在你要做的第一步就是:打
开或者新建一个config.web文件。我们分开来说:
如果是新建,你就需要用文本编辑器新建一个新的文档,然后往里面输入下
面的语句:
<configuration>
<customerrors mode="off"></customerrors>
</configuration>

    输完后选择另存为,输入文件名config.web,将它保存到当前页面相同的文件夹中即可。如果是修改一个已经存在的config.web文件,你只需要用文本编辑器打开它,然后在<configuration>和</configuration>之间的任意地方输入:
<customerrors mode="off"></customerrors>即可。

    现在你可以在看一下出错页面的提示信息了。
    上一次我们说到配置config.web文件,让出错信息给出更多的提示。可光有
提示又有什么用呢?“最多就是知道错在哪里,可我还是不会改呀!”别急,别
急,看看咱们这篇文章叫什么来着,“三板斧”,那当然是一斧赛过一斧啦!上
次那招不够厉害,我们还有下面的那,所以别急啊,且听我慢慢道来。

第二招: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.warn或trace.write两个方法。他们的用法如下:
trace.warn("description",variables);
trace.write("description",variables);

    我想你们一定会问,这两个有什么区别呢?回答是:在功能上,这两个是一模一样的,只是在显示上,trace.warn将会以红色字体表示
第三招 查错神器debugger

    要用好的兵器,没点准备是不行的,所以我们就先来做点准备运动。
    1.config.web的设定:还记得第一招中讲的吗?对了,还是这个文件,打开它,向里面加入这条语句
    <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 processes和show 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程序,有
个这样的利器,真是省了我们很多时间啊!怎么还不快试试! 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表