网球

资深站长ASP30高级编程三十四7z

2019-10-12 01:43:29来源:励志吧0次阅读

11:53 来源:中国站长站 :水色皇朝【纠错】人评论

A-A+ 怎么开淘宝店 站优化方法 创业如何获得投资 小米note顶配版评测 最新LOL活动

7.4.4 使用IIS错误页面与ASP错误处理过程相关的内容是为IIS提供可定制的错误页面。事实上,在IIS 4.0中也有这个特点。但新的ASP内置对象ASPError,更易于使用且提供更加强大的功能。在第4章,当我们研究ecute和ansfer方法时,已经讲述了如何建立定制的错误页面。我们也讨论和使用了ASPError对象,但这种方式受到了一定的限制。在这一部分,将介绍如何将定制的错误页和ASPError对象结合起来建立一个更好的处理ASP错误的方法。我们可以使用VBScript检查ASPError对象的内容,从而创建一个定制的错误页面。构建一个包含错误内容全面信息的字符串,且写入到服务器磁盘上的日志文件中。然而页的设计仅使访问者看到页不可用这样一条信息是不行的,应该使访问者能够选择是重新载入上一个页还是回到主页,使他们没意识已经发生了错误。尽管我们采用VBScript创建这个页,但其使用的一些特性对JScript来说也是适用的,这两种脚本语言的相互转换也是比较容易的

。可以从://.wrox站点下载本章及本书其他章节的示例文件。1. 设置定制的错误页面在能使用定制的错误页面之前,必须在Inter Services Manager进行相应的设置(设置方式见第4章)。把示例文件装入计算机的root目录中,打开Chapter07子目录的Properties对话框,在Custom Errors选项卡中,滚动列表并选中HTTP错误500:100条目,点击Edit Properties按钮,并键入定制的错误页面Custom_p的URL现在Chapter07子目录中的页面出现一个ASP错误时,就会打开定制的错误页面。2. 使用定制的错误页面在浏览器中打开Chapter07目录并选择到Using a Custom Error Page的链接,这个页面显示了一系列用于产生各种类型的错误的按钮,点击标有Load a Page with a Syntax error的按钮这将载入一个名为syntax_p的简单页面。然而看不到这个页面,因为这个页面包含了一个语法错误。ASP终止这个页面的编译/执行,并把执行转到定制错误页面,这个页面展示了错误的细节和两个按钮,这两个按钮用以返回上个页面(主菜单)或返回Web站点的缺省主页

这个页面也把错误报告追加到服务器磁盘C:\temp文件夹中名为custom_g的日志文件中,可以在文件器中打开并查看它,日志文件已经记录了几个错误。如果在页面中得到了一个信息,指明日志文件不能写入信息,可能是因为IUSR_machinename(IUSR_计算机名)帐号没有访问C:\temp目录的权限。当测试这个页面时,应该给予IUSR_machinename帐号对这个目录的全部控制权,或者改变custom_p页面的程序代码以指向一个IUSR有全部控制权的文件夹错误消息出现在页面中的唯一原因,是因为在cause_p页面中我们选择了相应的复选框

。如果关闭该选项并再次点击按钮,便看不到错误的详细情况,然而错误信息仍然记录在服务器磁盘上的custom_g错误日志文件中。Display debugging information复选框给定制错误页面(而不是日志文件)提供了更多的信息,有助于调试那些使用ASP内置对象集合值的页面在本章下面部分,将再讨论这一问题,同时也可以了解Cause An Error页面上的其他按钮所提供的其他种类的错误信息。注意有一些按钮能够比其他的按钮能够提供更多信息。特别是只有最后一个按钮给出ASP错误代码的值(这里是ASP 0177)。(1) Cause An Error页面的功能与先前讨论的示例页面一样,引起错误的页面使用同样的技术,用Form把值提交给同一个页面

。然后ASP程序查看窗口上点击的是那个SUBMIT按钮,然后运行代码的相应部分。同时查看是否页面上两个复选框是否选中,如果是这样,程序首先设置一个或两个会话级的变量以指明这一点。%'see if g error and debug information'set session variables to retrieve in the custom error pageIf Len(rm(chkShowError)) ThenSession(ShowError) = YesElseSession(ShowError) = End IfIf Len(rm(chkShowDebug)) ThenSession(ShowDebug) = YesElseSession(ShowDebug) = End If...%由于使用了ansfer,当错误发生时,正在运行的页的整个ASP环境由IIS传给定制错误页面。然而

,脚本变量的值并没有传给定制错误页面,所以必须使用Session变量,或者把值添加到rm或eryString集合以便把值传送给定制错误页面。设置了Session变量之后,程序继续查看点击了那个按钮。每个类型的错误(除了第一类型外),都是由运行相应的ASP代码产生的,第一类型的错误需要调用另一个页面

。..

.'look for a mand sent from the FORM section buttonsIf Len(rm(cmdSyntax)) direct syntax_pEnd IfIf Len(rm(cmdParamType)) ThenintDate = errorintDay = Day(intDate)End IfIf Len(rm(cmdArray)) ThenDim arrThis(3)arrThis(4) = Causes an errorEnd IfIf Len(rm(cmdFile)) ThenSet objFSO = eateObject(leSystemObject)Set objTStream = enTextFile(does_not_t)End IfIf Len(rm(cmdPageCount)) ThenSet objPageCount = eateObject(geCounter)ongProperty = 10End IfIf Len(rm(cmdObject)) ThenSet objThis = eateObject(ist)End If

查看更多相似文章

微信如何开微店铺
如何发布微信小程序
微商城多少钱
分享到: