我在我的ASP.NET应用程序下面的customErrors部分:ASP.NET:当customError页面发生错误时,我该怎么办?
<customErrors mode="RemoteOnly">
<error statusCode="500" redirect="500.aspx"/>
</customErrors>
如何显示用户友好的消息,如果“500.aspx”给出了一个错误(可以在数据库宕机发生,例如)?
我在我的ASP.NET应用程序下面的customErrors部分:ASP.NET:当customError页面发生错误时,我该怎么办?
<customErrors mode="RemoteOnly">
<error statusCode="500" redirect="500.aspx"/>
</customErrors>
如何显示用户友好的消息,如果“500.aspx”给出了一个错误(可以在数据库宕机发生,例如)?
您可以使用静态页面(例如500.html)来避免此问题。
在响应共同评论:
我想用静态页面,只有当“500.aspx”不起作用。
知道500.aspx是否能够正常工作的唯一方法就是尝试一下。因此,在这种情况下,您可以在web.config的customErrors
元素中定义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一个特定的页面? 如果您愿意,您甚至可以添加邮件方法来通知您某些错误。
我想每个错误代码使用一个单独的页面。这就是我们的客户习惯在CMS中做的事情。那么如何启用电子邮件通知,而不用搞乱C#呢? –
mailmethod是通过C#,所以如果你不想利用这一点,我怀疑你是否可以这样做。 – Rob
啊,好的。只是认为在web.config中有特定的设置。 –
我想尽可能使用“500.aspx”。因为它可以保存数据库中存储的所有网站信息:导航,公司电子邮件,徽标等。如果“500.aspx”出现错误,我可以使用静态页面吗? –
澄清:我只想在“500.aspx”不起作用时使用静态页面。否则使用“500.aspx”。那可能吗? –