0

问:

我使用ELMAH- 错误记录模块和处理程序。

但我想向用户显示漂亮的错误页面。

我的问题有两个部分:

  1. 此页面是否需要任何首选设计或信息。(要求)。任何建议,链接都会很棒。

  2. 当我评论该Clear error行时,会向用户显示错误页面,否则不会出现错误页面。为什么我们要清除错误?以及如何显示错误页面。


 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"/>
4

1 回答 1

1

我会尝试一个答案。对于错误页面,我不使用 .aspx 页面,因为该页面通过 ASP .Net 模块,并且一个模块也可能有错误。所以我推荐一个仅由 IIS 提供的静态页面(.html 页面)。当然,我也希望看到错误页面使用相同的网站主题,这很容易使用母版页制作,也可能是当前会话中的其他信息,如登录用户等。所有这些都涉及与ASP .Net 因此也有可能出现错误并被重定向到默认框架生成的错误页面。因此,一个非常轻的错误页面(相同的颜色、字体样式等)可能带有一些图形和清楚的信息,对用户来说已经足够了。

对于 Elmah,我也使用了一些做法:首先,我不使用处理程序的“通常”名称,而是使用其他名称,例如“access-to-elmah-error.ashx”。认为每个人都知道 elmah.ashx 或 error.ashx 用于显示服务器端错误以及黑客的良好来源。接下来是我在授权部分保护它。如果网站出了问题而我无法登录,我可以更改 web.config 以取消保护它并查看发生了什么。

于 2011-07-27T09:55:02.593 回答