创建自定义 ASP 错误页

文章翻译 文章翻译
文章编号: 224070 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

Microsoft Internet Information Services (IIS) 版本 5.0 引入了能够创建自定义的活动服务器页面 (ASP) 错误页,通过添加内置的 ASP 的服务器对象的新方法的调用返回新 ASPErrorServer.GetLastError()

更多信息

编译或运行的 ASP 页时,将发生错误时, IIS 将生成一个 500; 100 错误,并执行 Server.Transfer() 方法将控制传递给当前定义的自定义错误页。(默认情况下此页是 /iishelp/common/500-100.asp。有关 Server.Transfer() 方法的详细信息,请参阅 Microsoft 知识库中下面的文章:
219294如何使用 Server.Transfer 方法
当控件传递给自定义错误页时,Server.GetLastError() 方法可用于获取有关发生错误的详细的信息。Server.GetLastError() 方法返回一个具有下表中列出的属性的 ASPError 对象。(此表也位于 IIS 5.0 联机文档)。
收起该表格展开该表格
属性说明
ASPCode返回由 IIS 生成一个错误代码。
数字返回标准 COM 错误代码。
指示错误的来源是否 ASP,该脚本语言或对象的内部。
文件指示发生错误时正在处理的.asp 文件的名称。
表示在.asp 文件中生成该错误的行。
说明返回此错误的简短描述。
ASPDescription如果是 ASP 相关错误,请返回该错误的更详细的说明。
下列步骤将指导您完成自定义的 ASP 错误页的设置。
  1. (不带引号),下面的 ASP 代码您脚本的文件夹中保存为"My500.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>
    						
  2. 设置自定义的 ASP 错误页,请执行下列操作:

    1. 在 MMC 中打开 Internet 服务管理器。
    2. 展开您默认的网站。
    3. 右击脚本文件夹,然后选择 属性
    4. 单击 自定义错误 选项卡。
    5. 向下滚动并突出显示 500; 100 HTTP 错误,然后单击 编辑属性
    6. 确保 消息类型 设置为 URL
    7. 更改 URL 以"/ scripts/my500.asp"(不带引号)。
    8. 单击 确定,直到返回到 MMC。
  3. 测试新的错误页,请执行以下操作:

    1. 在脚本文件夹中保存所有的下列页面:

      • 将另存下列页面为"Badpage1.asp"(不带引号),请执行下列操作:
        <%@Language="VBSCRIPT"%>
        <html>
        <head>
        <title>Bad Page 1</title>
        </head>
        <body>
        <% Response.Write 1/0 %>
        </body>
        </html>
        										
      • 保存下列页面作为 Badpage2.asp"(不带引号):
        <%@Language="VBSCRIPT"%>
        <html>
        <head>
        <title>Bad Page 2</title>
        </head>
        <body>
        <% Response.BadMethod "Hello" %>
        </body>
        </html>
        										
      • 将在下页另存为"Badpage3.asp"(不带引号):
        <%@Language="VBSCRIPT"%>
        <html>
        <head>
        <title>Bad Page 3</title>
        </head>
        <body>
        <%
          Dim objBad
          Set objBad = Server.CreateObject("BAD.OBJECT.CLASS")
        %>
        </body>
        </html>
        										
    2. 当您浏览的任何上述页时,现在您应该看到自定义错误页返回到浏览器。
注:在使用 Internet Explorer 5.0 及更高版本查看自定义 ASP 错误页时可能会返回意外的结果。 IE5 引入了一种将替换为 HTTP 500 的 HTML 模板的功能和其他几个通常返回具有标准化的、 非特定邮件的状态代码。 绕过此功能,并显示返回到浏览器的状态代码的确切文本以打开 Internet Explorer,然后定位到:
Tools | Internet Options | Advanced
					

然后取消选中标记为复选框
Show friendly HTTP error messages
					

此功能的其他有关的信息,可在
218155超文本传输协议错误消息的说明

属性

文章编号: 224070 - 最后修改: 2006年11月21日 - 修订: 1.2
这篇文章中的信息适用于:
  • Microsoft Internet Information Services 5.0
关键字:?
kbmt kbaspobj kbcodesnippet kbinfo KB224070 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 224070
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com