ASP 3.0高级编程(三十五)

江湖651202

江湖651202

2016-01-29 19:14

ASP 3.0高级编程(三十五),ASP 3.0高级编程(三十五)
  7.5.1 常规调试技术
       在第2章中,已经看到如何使用Response.Write方法以及Request集合来显示集合的内容。如果代码要使用来自请求的值,首先要做的是保证所需的值存在。很容易出现的问题是错拼或改变的<FORM网页中HTML控件的名字,或者创建附加在URL后面的查询字符串时出现了错误的客户端。
1.  显示各种集合内容
当程序试图使用用户提供的值运行时,可能没有得到所期望的结果,或者什么结果也没得到。记住,引用Request对象的集合中一个并不存在的值(例如,在窗体上没有一个名为“ThisControl”的控件时,使用Request.Form("ThisControl")不会引起错误。结果可能只得到一个空字符串。如果期望查找存储在用户的Session对象或全局Application对象变量中的数值,同样可能出现这种情况。
如果创建一个页面用来显示所有Request对象集合、Session和Application对象的Contents和StaticContens集合的内容,可以任何网页使用Server.Execute对其进行访问。所需要做的工作是把下面程序行加到ASP网页中,用来显示集合的全部内容。当然,根据服务器上文件存放的位置,必须给文件设置相应的路径。
<% Server.Execute "/path_to_file/debug_Request.asp" %
这是一种很好的方法,保证我们希望在Request、Session和Application集合中找到的任何值确实存在,并且包含了合适的值。在本书的示例文件Chapter07子目录中提供了一个相应的文件,取名为debug_Request.asp。它基本上是用于第2章的show_request.asp网页和用于第3章的show_application.asp和show_session.asp网页的一个组合,但删除了部分HTML程序代码。它只是简单地遍历了集合并把值放到当前页面中。
可以通过运行“Custom Error Page”实例来查看这个页面。这个实例在本章前面看到过,打开时请选中“Display debugging information”复选框,或者直接在chapter07目录中的主菜单网页中打开。
2.  显示中间值
在网页中查看运行情况的第二个方法是显示网页运行时变量的值.当大概知道了错误来自何处,哪个变量在起作用时,这种传统技术还是不能废弃的。但由于IIS 5.0网页缓冲方式的改变,使得使用这项技术比较困难。
在ASP和IIS的先前版本中,缺省时关闭页面缓冲,并且几乎没有人想到将缓冲打开(使用Response.Buffer = True打开),除非想使用Response.Redirect完成网页的再定向(参看第2章)。响应多个请求时,由于缓冲减小了网页间切换的次数,从而提高了IIS的效率。
然而,当出现一个使运行停止的运行期错误时,IIS自动调用Response.Clear方法,再调用Server.Execute来装入定制错误网页,因此写进网页的任何输出都丢失了。解决方法是暂时增加下面的程序行:
<% Response.Buffer = False %
此程序行放在页面顶部<@LANGUAGE...指令后面,任何由Response.Write语句生成的调试输出将出现在定制错误网页的顶部。记住在完成网页调试之后将它去掉。
强行使程序运行通过一个错误点,然后显示可疑的变量值,这种方法有时也是有用的。只需在网页开始处附近增加On Error Resume Next语句,然后就能访问Err对象(在VBScript中),并显示错误号、错误源和描述。
3.  检查组件属性值
如果使用的组件具有在ASP脚本代码中设置的属性,在完成设置之后,并且调用组件方法之前和之后,能通过显示所有属性(或仅是可疑的属性)来跟踪错误。当一个方法运行时,可能发现属性值意外地被组件改变了,这或许是故意的,或者是因为组件中的缺陷。没有亲自检查实际代码,不要做任何假设。

7.5.2 Microsoft Script Debugger
       当开发更复杂的处理实际任务的应用程序时,经常需要一个更加强大的工具来进行调试。Microsoft Script Debugger(微软脚本调试器)是一种允许调试运行在客户机和服务器上的脚本的调试工具。它能用于任何启用ActiveX的脚本语言(包括VBScript和JScript)编写的程序,也能够用来调试对Java applet、Java Bean和ActiveX组件的调用。
       在研究这个工具之前,先简要说明一些问题。如前所述,ASP应用程序由两种脚本组成,一种是客户端脚本,一种是服务器端脚本。客户端脚本通常由VBScript或JScript脚本语句组成,当其到达客户端时出现在HTML页面中并在此执行,可能是在载入文档时或是在对一些事件的响应中。服务器端脚本通常也由VBScript或JScript语句组成。当浏览器请示网页时,服务器端脚本由IIS执行。在下面的讨论中,将讨论服务器端脚本调试的方法。然而所讨论的许多技术也可用于客户端脚本调试。
1.  服务器端的调试
为了调试服务器端脚本,在运行IIS的计算机上运行脚本调试器,然而在使用脚本调试器之前,必须启用调试。为了使性能最优化,基于ASP的应用程序在缺省情况下关闭了调试功能。
注意,不要对生产性的应用程序(即处于活动状态的并被他人使用的公用
展开更多 50%)
分享

猜你喜欢

ASP 3.0高级编程(三十五)

ASP
ASP 3.0高级编程(三十五)

ASP 3.0高级编程(十五)

ASP
ASP 3.0高级编程(十五)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ASP 3.0高级编程(二十五)

ASP
ASP 3.0高级编程(二十五)

ASP 3.0高级编程(四十五)

ASP
ASP 3.0高级编程(四十五)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ASP 3.0高级编程(五)

ASP
ASP 3.0高级编程(五)

ASP 3.0高级编程(六)

ASP
ASP 3.0高级编程(六)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Photoshop鼠绘教程:绘制逼真的铅笔全过程

Photoshop鼠绘教程:绘制逼真的铅笔全过程

手把手教你使用Java来编写ASP组件(1)

手把手教你使用Java来编写ASP组件(1)
下拉加载更多内容 ↓