iis-7 - ASPError 对象在我的自定义错误页面上不包含任何数据

标签 iis-7 asp-classic vbscript

我的 中有以下内容web.config

<httpErrors errorMode="Custom">
    <remove statusCode="500" subStatusCode="-1" />
    <error statusCode="500" prefixLanguageFilePath="" path="/error.asp" responseMode="ExecuteURL" />
</httpErrors>
错误处理正在工作,当发生 500 错误时,我被发送到我的 error.asp而不是默认的 500 错误页面。
问题是 ASPError 的所有属性都没有。 Server.GetLastError 返回的对象设置。
例如,在下面的代码中,错误描述是
dim oErr : set oErr = Server.GetLastError

Response.Write "Error Description:  " & oErr.Description& "<br />"

更新
基于 Joel 在评论中链接到的线程,我已将 web.config 更新为以下内容:
<httpErrors errorMode="Custom">
    <remove statusCode="500" subStatusCode="100" />
    <error statusCode="500" subStatusCode="100" prefixLanguageFilePath="" path="/error.asp" responseMode="ExecuteURL" />
</httpErrors>
GetLastError 返回的 ASPError 对象中给我数据.
现在的问题是我从产生错误的页面的开头获取 HTML,然后页面的其余部分是来自 error.asp 的 HTML。 .
我真的很想重定向到 error.asp而是将 web.config 更改为 responseMode="Redirect"似乎不起作用。

最佳答案

这是对我有用的解决方案。

设置 web.config 像这样:

<httpErrors errorMode="Custom">
    <remove statusCode="500" subStatusCode="100" />
    <error statusCode="500" subStatusCode="100" prefixLanguageFilePath="" path="/error.asp" responseMode="ExecuteURL" />
</httpErrors>

一个简单的 error.asp 可能看起来像这样:
<%@ Language=VBScript %>
<% 
    Option Explicit
    On Error Resume Next
    Response.Clear
    Dim objError, MessageBody
    Set objError = Server.GetLastError()

    Response.Write objError.ASPCode & "<br />"
    Response.Write objError.Number & "<br />"
    Response.Write objError.Description & "<br />"
%>

我的问题的关键似乎是 On Error Resume NextResponse.Clear .

我在 Creating Custom ASP Error Pages 上找到了解决方案Microsoft 知识库文章 (Q224070)。

关于iis-7 - ASPError 对象在我的自定义错误页面上不包含任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4136006/

相关文章:

asp.net-mvc - url重写后如何知道原始url?

javascript - ASP 网站 IIS 将 '' < %'' javascript 字符解释为 ASP 代码

javascript - ASP 表单问题

windows - 网络延迟监控脚本窗口

xml - 在 VBScript 中解析 XML 字符串

c# - 如何使用命令行回收远程机器上的应用程序池

asp.net - 为什么在调试 Web 应用程序时会收到 "The server committed a protocol violation Section-ResponseStatusLine"?

c# - 将网站从 IIS6 迁移到 IIS 7.5 后内容不显示

vb.net - 使用 VBScript 和 Azure Key Vault 从 Azure Web App 访问 Azure SQL 数据库

vbscript - VBS FileSystem Object - FileExists,不仅仅是文件名的比较