电脑技术学习

ASP 3.0高级编程(三十四)

dn001

7.4.4 使用IIS错误页面
;;;;;;;与ASP错误处理过程相关的内容是为IIS提供可定制的错误页面。事实上,在IIS 4.0中也有这个特点。但新的ASP内置对象ASPError,更易于使用且提供更加强大的功能。
;;;;;;;在第4章,当我们研究Server.Execute和Server.Transfer方法时,已经讲述了如何建立定制的错误页面。我们也讨论和使用了ASPError对象,但这种方式受到了一定的限制。在这一部分,将介绍如何将定制的错误网页和ASPError对象结合起来建立一个更好的处理ASP错误的方法。
;;;;;;;我们可以使用VBScript检查ASPError对象的内容,从而创建一个定制的错误页面。构建一个包含错误内容全面信息的字符串,且写入到服务器磁盘上的日志文件中。然而网页的设计仅使访问者看到网页不可用这样一条信息是不行的,应该使访问者能够选择是重新载入上一个网页还是回到主页,使他们没意识已经发生了错误。
;;;;;;;尽管我们采用VBScript创建这个网页,但其使用的一些特性对JScript来说也是适用的,这两种脚本语言的相互转换也是比较容易的。
;;;;;;;可以从http://www.wrox.com站点下载本章及本书其他章节的示例文件。
1.;;设置定制的错误页面
在能使用定制的错误页面之前,必须在Internet Services Manager进行相应的设置(设置方式见第4章)。把示例文件装入计算机的wwwroot目录中,打开Chapter07子目录的Properties对话框,在Custom Errors选项卡中,滚动列表并选中HTTP错误“500:100条目,点击Edit Properties按钮,并键入定制的错误页面Custom_error.asp的URL,如图7-17所示:

图7-17;;Custom Errors选项卡
现在Chapter07子目录中的页面出现一个ASP错误时,就会打开定制的错误页面。
2.;;使用定制的错误页面
在浏览器中打开Chapter07目录并选择到“Using a Custom Error Page的链接,这个页面显示了一系列用于产生各种类型的错误的按钮,点击标有“Load a Page with a Syntax error的按钮,如图7-18所示:

图7-18;;演示定制错误页面的屏幕1
这将载入一个名为syntax_error.asp的简单页面。然而看不到这个页面,因为这个页面包含了一个语法错误。ASP终止这个页面的编译/执行,并把执行转到定制错误页面,这个页面展示了错误的细节和两个按钮,这两个按钮用以返回上个页面(主菜单)或返回Web站点的缺省主页,如图7-19所示:

图7-19;;演示定制错误页面的屏幕2
这个页面也把错误报告追加到服务器磁盘C:temp文件夹中名为custom_error.log的日志文件中,可以在文件编辑器中打开并查看它,图7-20所示的日志文件已经记录了几个错误。

图7-20 日志文件
如果在页面中得到了一个信息,指明日志文件不能写入信息,可能是因为IUSR_machinename(IUSR_计算机名)帐号没有访问C:temp目录的权限。当测试这个页面时,应该给予IUSR_machinename帐号对这个目录的全部控制权,或者改变custom_error.asp页面的程序代码以指向一个IUSR有全部控制权的文件夹
错误消息出现在页面中的唯一原因,是因为在cause_error.asp页面中我们选择了相应的复选框。如果关闭该选项并再次点击按钮,便看不到错误的详细情况,然而错误信息仍然记录在服务器磁盘上的custom_error.log错误日志文件中。
“Display debugging information复选框给定制错误页面(而不是日志文件)提供了更多的信息,有助于调试那些使用ASP内置对象集合值的页面,如图7-21所示:

图7-21;;cause_error.asp页面的选择框

标签: 编程