Michael Shang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在文章调试JavaScript/VB Script脚本程序(Wscript篇)里面,有网友问我如何调试ASP里面的脚本程序,我不知道他问得是调试ASP网页里面的VBScript ASP代码,还是ASP.NET网页里面的JavaScript/VBScript客户端代码,所以我就在这篇文章里面先将调试ASP网页里面的ASP代码这种情况都解释一下吧。

估计ASP这个玩艺用的人已经很少了,但是还是有很多老网站是用ASP技术制作的,维护的时候,还是需要调试修改一下ASP网页代码的。虽然ASP网页的代码大部分都是VBScript或者JavaScript编写的,而很多在浏览器上运行的DHTML代码也是用JavaScript/VBScript写成,这很容易误导程序员,认为两者都是在浏览器上运行的,其实不然。

ASP网页代码是在服务器端运行的,具体来说是由IIS里面执行,为什么IIS可以同时执行ASP网页和ASP.NET网页代码,如果我告诉你IIS还可以执行JSP代码,你信不信?当然啦,IIS如何可以执行ASPASP.NETJSP等代码又可以开一系列的文章来讲解啦。

DHTML代码是在浏览器端(IE或者Firefox)执行的,两种代码不同的执行方式也决定了不同的调试策略。

综上所述,两种是不同是事物,但是两者是相辅相成,不可分割的……

为了调试ASP网页代码,你需要调试IIS工作进程(不是IISAdmin那个进程),在IIS 6.0中,IIS工作进程名叫做w3wp.exeWorld Wide Web Process),在IIS 6.0之前好像是dllhost.exe。因为IIS 5.0用的人已经不多了主要是我已经不用了,所以本文是以IIS 6.0作为平台讲解的。

因为打开调试支持会影响到网站的性能即响应速度,所以默认情况下,IISASP的调试功能关闭了:

1.       打开IIS管理界面(IIS Manager或者iisadmin.exe)。

2.       右键单击你要调试的网站,例如“默认网站(Default Web Site)”。

3.       点击“家目录(Home Directory)”,点击“配置(Configuration)”。

4.       选择“调试(Debugging)”页签。

5.       将“调试标志(Debugging Flags)”的两个勾都选上,如下图所示:



6.      
启动Visual Studio,点击“工具(Tools)”“附加到进程Attach to process …)”。

7.       在“选择进程(Available Process)”对话框里面,选择w3wp.exe(注意,选择“类型(Type)”列为“脚本,x86Scripting, x86)那一个”)。

 

如果你在对话框里面没有看到w3wp.exe,请先访问一下网站因为网站可能重启了,然后点击“附加到进程Attach to process …)” 对话框上面的“刷新”按钮。

 

如果还是没有看到w3wp.exe,勾选“显示所有用户的进程(Show processes for all users)”和“显示所有会话的进程(Show processes in all sessions)”两个复选框,再点刷新试试。

 

如果还是没有看到,那么……

a)      要么回到第一步重新做一次。

b)      要么问候一下Visual Studio祖宗,回去睡觉,彻底忘掉这篇文章。

现在的效果应该和下图类似:



8.      
很遗憾,现在的Visual Studio 只支持设置函数断点了,至少我在2008里面是不能直接在代码行上设置断点了。

9.       点击Visual Studio的“调试(Debug)”“窗口(Windows)”“断点(Breakpoints)”菜单。

10.   然后点击“函数断点(Break at Function …)”,如下图所示:

11.   在接下来的窗口中输入—TestFunction,如下图所示:

12.   回到IE里面,刷新一下页面,这个时候,你应该可以做ASP调试了,如下图所示:

posted on 2009-09-14 15:43  Michael Shang  阅读(224)  评论(0编辑  收藏  举报