• ASPError对象与asp自定义错误处理页面


    本文为Microsoft官方文档。描述如何在asp中使用Error对象以及使用自定义的错误页面。

    概要
    本分步指南演示如何使用新的 ASPError 对象创建自定义的、集中的错误处理页。 例如,当发生错误并且系统中的某个进程尚未完成时,应用程序可能要求向某人发送电子邮件通知。 或者,您可能希望将 Internet Information Server (IIS) 错误日志信息以外的某些信息记录到数据库中。

    先决条件
    • Microsoft Windows 2000 Professional, Windows 2000 Server, or Windows 2000 Advanced Server
    • 已安装和配置了 Internet Information Server 5.0 (或者以上
    http://www.aspxuexi.com/)
    使用 ASPError 对象所需的 ASPError 对象及相关 Active Server Pages (ASP) 方法是 Active Server Pages 3.0 (ASP) 中的新增功能,在 Windows 2000 以前的操作系统中没有这些功能。

    新建 SubWeb
    1. 右键单击开始,然后单击资源管理器以打开 Windows 资源管理器。
    2. 选择 Web 站点的根文件夹(默认情况下为 C:\InetPub\Wwwroot)。
    3. 在文件菜单上,指向新建,然后单击文件夹。 将该文件夹命名为 ErrTest。
    4. 右键单击 ErrTest,然后单击属性。
    5. 在安全选项卡上,单击 Everyone。 在权限下,确保已选中读取和写入复选框。 其他复选框保持不变。 如果进行了任何更改,请单击应用。
    6. 从 Windows 开始菜单,指向程序,指向管理工具,然后单击 Internet 服务管理器以打开 Internet 服务管理器 (ISM)。
    7. 在“默认 Web 站点”下,应看到 ErrTest 目录。右键单击 ErrTest,然后单击属性。
    8. 确认已按以下方式启用了匿名访问:

     • 在目录安全性选项卡上,在匿名访问和验证控制下,单击编辑。
    • 选中匿名访问复选框,单击确定,然后单击应用。

    9. 若要将该目录标记为 ASP 应用程序,请在目录选项卡上,单击应用程序设置下的创建。 单击应用以保存所作的更改,然后单击确定关闭 ErrTest 属性对话框。

     
    创建自定义错误处理 ASP 页
    1. 在 Windows 开始菜单中,指向程序,指向附件,然后单击记事本。
    2. 将下列代码粘贴到“记事本”中以创建示例 ASP 错误处理程序页:

     

    <%@Language="VBSCRIPT"%> 
    <
    Option Explicit 
    On Error Resume Next 
    Response.Clear 
    Dim objError 
    Set objError = Server.GetLastError() 
    %
    > 
    <html> 
    <head> 
    <title>ASP 500 Error</title> 
    <style> 
    BODY { FONT
    -FAMILY: Arial; FONT-SIZE: 10pt; 
    BACKGROUND: #ffffff; COLOR: #
    000000
    MARGIN: 15px; } 
    H2 { FONT
    -SIZE: 16pt; COLOR: #ff0000; } 
    TABLE { BACKGROUND: #
    000000; PADDING: 5px; } 
    TH { BACKGROUND: #0000ff; COLOR: #ffffff; } 
    TR { BACKGROUND: #cccccc; COLOR: #
    000000; } 
    </style> 
    </head> 
    <body> 

    <h2 align="center">ASP 500 Error</h2> 

    <p align="center">An error occurred processing the page you requested.<br> 
    Please see the details below 
    for more information.</p> 

    <div align="center"><center> 

    <table> 
    <If Len(CStr(objError.ASPCode)) > 0 Then %> 
    <tr> 
    <th nowrap align="left" valign="top">IIS Error Number</th> 
    <td align="left" valign="top"><%=objError.ASPCode%></td> 
    </tr> 
    <End If %> 
    <If Len(CStr(objError.Number)) > 0 Then %> 
    <tr> 
    <th nowrap align="left" valign="top">COM Error Number</th> 
    <td align="left" valign="top"><%=objError.Number%> 
    <%=" (0x" & Hex(objError.Number) & ")"%></td> 
    </tr> 
    <End If %> 
    <If Len(CStr(objError.Source)) > 0 Then %> 
    <tr> 
    <th nowrap align="left" valign="top">Error Source</th> 
    <td align="left" valign="top"><%=objError.Source%></td> 
    </tr> 
    <End If %> 
    <If Len(CStr(objError.File)) > 0 Then %> 
    <tr> 
    <th nowrap align="left" valign="top">File Name</th> 
    <td align="left" valign="top"><%=objError.File%></td> 
    </tr> 
    <End If %> 
    <If Len(CStr(objError.Line)) > 0 Then %> 
    <tr> 
    <th nowrap align="left" valign="top">Line Number</th> 
    <td align="left" valign="top"><%=objError.Line%></td> 
    </tr> 
    <End If %> 
    <If Len(CStr(objError.Description)) > 0 Then %> 
    <tr> 
    <th nowrap align="left" valign="top">Brief Description</th> 
    <td align="left" valign="top"><%=objError.Description%></td> 
    </tr> 
    <End If %> 
    <If Len(CStr(objError.ASPDescription)) > 0 Then %> 
    <tr> 
    <th nowrap align="left" valign="top">Full Description</th> 
    <td align="left" valign="top"><%=objError.ASPDescription%></td> 
    </tr> 
    <End If %> 
    </table> 

    </center></div> 

    </body> 
    </html>
    3. 在文件菜单上,单击保存。 在出现提示时,将该页命名为 My500ErrHandler.asp,然后将该页保存到以前创建的 ErrTest 文件夹中。

    将新页设置为 500 种错误的错误处理程序
    1. 在开始菜单上,指向程序,指向管理工具,然后单击 Internet 服务管理器。
    2. 右键单击“默认 Web 站点”下的 ErrTest 虚拟目录,然后单击属性。
    3. 在自定义错误信息选项卡上,滚动到“HTTP 错误”列中一个包含“500;100”的项。 可以在其中更改设置,以指向自定义错误处理程序。
    4. 选择作为 500;100 错误当前定义的行,然后单击编辑属性。
    5. 在消息类型下拉列表框中,单击 URL。
    6. 请注意,在 URL 文本框中,URL 默认指向位于“/iisHelp/common/500-100.asp”的页。 这是系统上的默认错误处理页,如果未定义自定义处理程序,则通常由它处理 ASP 错误。 请注意,可以在文本编辑器中打开该页以查看它的错误处理方法。
    7. 若要启用自定义处理程序,请键入到 ASP 页的虚拟路径。 例如,如果 ErrTest 虚拟目录就在服务器上根 Web 站点的下方,则键入以下路径:
    /ErrTest/My500ErrHandler.asp
    8. 单击确定两次,关闭这些对话框并设置自定义错误处理程序。
    测试自定义错误处理程序
    测试 1:运行时错误
    下页演示一个运行时错误,当您执行无法完成的操作(如被零除)时就会出现这种错误: 1. 单击开始,指向程序,指向附件,然后单击记事本。
    2. 粘贴以下代码:

    2. 粘贴以下代码:
    <%@Language="VBSCRIPT"%>
    <html>
    <head>
    <title>Bad Page 1</title>
    </head>
    <body>
    <% Response.Write 1/0 %>
    </body>
    </html>

    3. 在文件菜单上,单击保存。 出现提示时,将该页命名为 BadPage1.asp,然后将该页保存到以前创建的 ErrTest 文件夹中。
    4. 在 Web 浏览器中,在地址栏中键入以下 URL 以浏览到该页:
    http://<您的服务器名 >/ErrTest/BadPage1.asp

    测试 2:代码中无效的方法
    下页演示当代码调用的方法不存在或者内部 ASP 对象引用中的方法有拼写错误时发生什么情况: 1. 在开始菜单中,指向程序,指向附件,然后单击记事本。
    2. 粘贴以下代码:
    <%@Language="VBSCRIPT"%>
    <html>
    <head>
    <title>Bad Page 2</title>
    </head>
    <body>
    <% Response.BadMethod "Hello" %>
    </body>
    </html>

    3. 在文件菜单上,单击保存。 出现提示时,将该页命名为 BadPage2.asp,然后将该页保存到以前创建的 ErrTest 文件夹中。
    4. 在 Web 浏览器中,在地址栏中键入以下 URL 以浏览到该页:
    http://<您的服务器名 >/ErrTest/BadPage2.asp

    测试 3:未注册的对象
    下页演示创建未在服务器上注册的外部对象时出现的错误: 1. 在开始菜单中,指向程序,指向附件,然后单击记事本。
    2. 粘贴以下代码:
    <%@Language="VBSCRIPT"%>
    <html>
    <head>
    <title>Bad Page 3</title>
    </head>
    <body>
    <%
    Dim objBad
    Set objBad = Server.CreateObject("BAD.OBJECT.CLASS")
    %>
    </body>
    </html>

    3. 在文件菜单上,单击保存。 出现提示时,将该页命名为 BadPage3.asp,然后将该页保存到以前创建的 ErrTest 文件夹中。
    4. 在 Web 浏览器中,在地址栏中键入以下 URL 以浏览到该页:
    http://<您的服务器名 >/ErrTest/BadPage3.asp
    疑难解答
    • 在创建自定义错误处理程序时,应了解其他两个 ASP 概念: Server.Transfer 方法和 Server.GetLastError 方法。 Server.Transfer 方法将执行传送到在应用程序中定义的错误处理页。 因为 Server.Transfer 自动发生,所以通常不必对它进行处理。 Server.GetLastError 方法用于返回错误处理页中的 ASPError 对象。 并不要求您一定使用这种方法,在前面的示例错误处理页中包含这种方法。 有关这两种方法的更多信息,请参见“参考”一节。
    • 无论出现错误的页是用 JScript 还是用 VBScript 编写的,内置的错误处理程序都可以处理这些错误;但是,本文中的基本示例只返回有关 VBScript 页错误的有用信息。 如果页是用 Jscript 编写的,则可能需要创建针对 Jscript 的错误处理程序;或者,如果需要用错误处理程序处理任何类型页的错误,请查看默认错误处理页使用的方法。
    • Microsoft Internet Explorer 5 或更高版本包含一个可重写标准 HTTP Web 服务器错误信息的设置,这可能会导致浏览器出现异常情况。 若要关闭该功能,在浏览器中的工具菜单上,单击 Internet 选项。 在高级选项卡上,清除“显示友好 HTTP 错误信息”复选框。
    • 还要切记,仍然可以使用内联错误处理,内联错误处理将重写集中错误处理程序。 若要演示此操作,请在“记事本”中打开 BadPage1.asp,粘贴下列修改后的代码(它增加了一个内联错误处理程序):
    <%@Language="VBSCRIPT"%>
    <html>
    <head>
    <title>Bad Page 1</title>
    </head>
    <body>
    <%

    On error resume next

    Response.Write 1/0

    if err.number <> 0 then
    Response.Write err.description & "<BR>" & err.source & "<BR>"
    err.clear
    end if

    %>
    </body>
    </html>
    保存这些更改,并在 Web 浏览器中浏览到该文件。 请注意,内联错误处理程序重写所创建的集中错误处理程序。

    轉自:http://www.aspxuexi.com/aspbasic/error/2007-11-5/ASPError.htm

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    Sencha, the nightmare!
    最近这一年
    SharePoint 是哪些人设计、开发的?
    用 Excel 测试“绘制两点间连线”的算法
    实现一个基于 SharePoint 2013 的 Timecard 应用(下)
    实现一个基于 SharePoint 2013 的 Timecard 应用(中)
    实现一个基于 SharePoint 2013 的 Timecard 应用(上)
    ASP.NET 在 Windows Azure 环境中使用基于 SQLServer 的 Session
    SQLServer 查询使用键查找时锁申请及释放顺序
    由delete导致的超时已过期问题
  • 原文地址:https://www.cnblogs.com/Athrun/p/1388560.html
Copyright © 2020-2023  润新知