показ пользовательской ошибки страницы проблемы - PullRequest
0 голосов
/ 27 июля 2011

Q:

Я использую 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"/>

1 Ответ

1 голос
/ 27 июля 2011

Я попробую ответить.Для страницы ошибок я не использую страницу .aspx, потому что эта страница проходит через модули ASP .Net, и у одного модуля тоже могут быть ошибки.Поэтому я рекомендую статическую страницу (.html), обслуживаемую только IIS.Конечно, я хотел бы, чтобы я тоже увидел, что страницы ошибок используют ту же тему веб-сайта, что легко сделать с помощью мастер-страниц, а также, возможно, другую информацию из текущего сеанса, например, вошедшего в систему пользователя и т. Д. Все это включает взаимодействие сASP. Net, поэтому существует риск получить ошибки и быть перенаправлены на страницу сгенерированных ошибок по умолчанию.Так что очень легкой страницы с ошибками (те же цвета, стили шрифтов и т. Д.), Возможно, с некоторой графикой и четким сообщением о том, что произошло, достаточно для пользователя.

Для Элмы я ​​тоже использую некоторые практики: сначалаЯ не использую «обычное» имя для обработчика, а что-то другое, например «access-to-elmah-error.ashx».Подумайте, что все знают, что elmah.ashx или error.ashx используются, чтобы показать ошибки на стороне сервера и каков хороший источник для хакера.Далее я защищаю его в разделе авторизации.Если с веб-сайтом что-то не так, и я не могу войти, я могу изменить web.config, чтобы снять защиту и посмотреть, что произошло.

...