问:
我使用ELMAH错误日志模块和处理程序.
但是我想给用户显示一个很好的错误页面。
我的问题有两部分:
Clear error行时,错误页会显示给用户,否则错误页面不会appear.Why我们清除错误?以及如何显示错误页面。 protected void Application_Error(object sender, EventArgs e)
{
HttpContext ctx = HttpContext.Current;
Exception exception = ctx.Server.GetLastError();
string errorInfo =
"<br>Offending URL: " + ctx.Request.Url.ToString() +
"<br>Source: " + exception.Source +
"<br>Message: " + exception.Message +
"<br>Stack trace: " + exception.StackTrace;
ErrHandler.WriteError(errorInfo);
ctx.Server.ClearError();
} <customErrors mode="On" defaultRedirect="Error.aspx"/>发布于 2011-07-27 09:55:02
我试试看答案。对于错误页面,我不使用.aspx页面,因为这个页面通过ASP .Net模块,而且一个模块也可能有错误。因此,我推荐一个静态页面(.html 1),仅由IIS提供。当然,我也希望我看到错误页面使用相同的网站主题,这很容易用母版页面实现,也可能是当前会话中的其他信息,比如登录用户等等。所有这些都涉及到与ASP .Net的交互,因此也有可能导致错误并被重定向到默认框架生成的错误页面。因此,一个非常轻的错误页面(相同的颜色,字体样式等),可能有一些图形和清楚的信息,发生了什么,对用户来说就足够了。
对于Elmah,我也使用了一些实践:首先,我不为处理程序使用“通常”的名称,而是使用“访问到elmah-error.ashx”之类的东西。认为每个人都知道elmah.ashx或error.ashx是用来显示服务器端错误的,并且是黑客的好来源。其次,我在授权部分保护它。如果网站有什么问题,而我无法登录,我可以更改web.config以取消保护,看看发生了什么。
https://stackoverflow.com/questions/6841319
复制相似问题