我的 ASP.NET 应用程序中有以下 customErrors 部分:
<customErrors mode="RemoteOnly">
<error statusCode="500" redirect="500.aspx"/>
</customErrors>
如果“500.aspx”给出错误(例如,当数据库关闭时可能发生),我如何显示用户友好的消息?
我的 ASP.NET 应用程序中有以下 customErrors 部分:
<customErrors mode="RemoteOnly">
<error statusCode="500" redirect="500.aspx"/>
</customErrors>
如果“500.aspx”给出错误(例如,当数据库关闭时可能发生),我如何显示用户友好的消息?
您可以使用静态页面(例如 500.html)来避免这个问题。
作为回应共同评论:
我只想在“500.aspx”不起作用时使用静态页面。
知道 500.aspx 是否会工作的唯一可靠方法是尝试一下。因此在这种情况下,您可以在customErrors
web.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");
}
}
如果您创建一个错误页面并始终让用户在那里结束。还是您希望每个 statusCode 都有一个特定的页面?如果您愿意,您甚至可以添加一个邮件方法来通知您某些错误。