0

我的 ASP.NET 应用程序中有以下 customErrors 部分:

<customErrors mode="RemoteOnly">
   <error statusCode="500" redirect="500.aspx"/>
</customErrors>

如果“500.aspx”给出错误(例如,当数据库关闭时可能发生),我如何显示用户友好的消息?

4

2 回答 2

1

您可以使用静态页面(例如 500.html)来避免这个问题。

作为回应共同评论:

我只想在“500.aspx”不起作用时使用静态页面。

知道 500.aspx 是否会工作的唯一可靠方法是尝试一下。因此在这种情况下,您可以在customErrorsweb.config 的元素中定义 500.aspx,并在 global.asax 中处理 500.aspx 的具体情况,例如:

void Application_Error(object sender, EventArgs e)
{
    HttpException httpException = Server.GetLastError() as HttpException;
    if (httpException == null) return;
    int httpCode = httpException.GetHttpCode();
    if (httpCode == 500 && 
        Request.Path.EndsWith("/500.aspx", StringComparison.OrdinalIgnoreCase))
    {
        Server.ClearError();
        Response.Redirect("~/500.htm");
    }
}
于 2012-10-08T06:41:52.973 回答
0

如果您创建一个错误页面并始终让用户在那里结束。还是您希望每个 statusCode 都有一个特定的页面?如果您愿意,您甚至可以添加一个邮件方法来通知您某些错误。

于 2012-10-08T06:32:39.847 回答