自定义错误页面未显示

时间:2010-10-20 06:50:15

标签: asp.net

出于某种原因,当我收到ASP.NET运行时错误时,它没有加载我的自定义错误页面

<customErrors mode="On" defaultRedirect="app_offline.htm" redirectMode="ResponseRewrite">
    <error statusCode="404" redirect="app_offline.htm"/>
        <error statusCode="500" redirect="app_offline.htm"/>
</customErrors>

那是在我的web.config中。

我仍然得到这个,但它没有加载我的错误.htm页面:

Server Error in '/' Application.
Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".

<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>


Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.

<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
    </system.web>
</configuration>

5 个答案:

答案 0 :(得分:7)

我非常确定app_offline.htm是ASP.NET中的保留文件名,如果存在于服务器上,它将始终提供。

尝试将其重命名为error.htm并更新<customErrors />块以匹配。

答案 1 :(得分:1)

我怀疑发生的事情是ASP.NET无法找到您的自定义错误页面。错误页面文件的路径必须是相对的或绝对的。所以:

<customErrors mode="On" defaultRedirect="~/app_offline.htm" redirectMode="ResponseRewrite">
    <error statusCode="404" redirect="~/app_offline.htm"/>
    <error statusCode="500" redirect="~/app_offline.htm"/>
</customErrors>

或者:

<customErrors mode="On" defaultRedirect="http://mysite.com/app_offline.htm" redirectMode="ResponseRewrite">
    <error statusCode="404" redirect="http://mysite.com/app_offline.htm"/>
    <error statusCode="500" redirect="http://mysite.com/app_offline.htm"/>
</customErrors>

应该解决你的问题。

答案 2 :(得分:0)

如果设置mode =“Off”,是否会获得实际错误的详细信息?如果您仍然获得相同的默认错误页面,您可能会在此帖子中找到解决方案:

CustomErrors mode="Off"

答案 3 :(得分:0)

问题是我的网站在.NET 3.5下运行时是4.0应用程序

答案 4 :(得分:0)

我也有同样的问题。主要问题与错误页面对不同用户的可见性有关。由标签

控制
  

模式

如下所示 enter image description here

我认为您已使用 RemoteOnly 。为了在您的本地计算机上运行时显示自定义错误页面,我们必须将 mode 值设置为 On 。对我来说,这是工作的后遗症。

我们还可以提供各种错误代码的错误页面。例如,在下图中,您可以看到-我为状态代码404的文件找不到异常类型指定了重定向页面 CustomErrorAspxPage.aspx enter image description here

最后为了测试这一点,我创建了例外1)的默认例外2)404文件不存在的例外,如下图所示。 enter image description here