Web.Config <customerrors> </customerrors>中的defaultRedirect问题

时间:2011-09-01 10:35:36

标签: c# asp.net web-config

我使用的是Asp.net 4.

此处设置我的Web.Config文件。

    <customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="/ErrorPages/Oops.aspx">
        <error statusCode="404" redirect="/ErrorPages/404.aspx" />
    </customErrors>

我需要将 defaultRedirect网址应用于任何例外,并仅将redirectMode="ResponseRewrite"用于 Page Not Found 404

此时此设置我可以正确管理未找到的页面(我能够获取404.aspx页面),但如果在任何其他页面上出现异常,我会得到"Internet Explorer cannot display the webpage"和我我无法访问defaultRedirect Oops.aspx

我在这做错了什么?感谢

3 个答案:

答案 0 :(得分:2)

将aspx页面作为自定义错误重定向的目标的一个问题是,目标还会抛出非特定于页面的错误(例如global.asax中的错误;处理web.config的错误)页面,这可能导致无限重定向循环。

因此,将静态html页面作为至少defaultRedirect的目标通常会更好。

答案 1 :(得分:1)

尝试将〜放在重定向网址中。

重定向= “〜/ ErrorPages / 404.aspx”

答案 2 :(得分:1)

错误页面内容有多少字节,是否设置了200以外的HTTP状态代码?在Internet Explorer中显示“显示友好HTTP错误消息”(默认情况下),IE浏览器将禁止内容长度小于512字节的自定义错误页面,并替换为“友好”错误消息。

要查看这是否是您的问题,您可以尝试关闭“工具”,“Internet选项”,“高级”,“设置”下的“显示友好HTTP错误消息”选项。它将位于“设置”区域中的“浏览”类别下。

如果页面显示关闭选项,请尝试重新打开并更改页面以添加图像或其他元素,使其大小超过512字节。