2009-02-11 8 views

ответ

2

Проверить эту статью:

Rich Custom Error Handling with ASP.NET

Усовершенствованное один с HttpModules:

ELMAH

+0

Я хотел бы также добавить, что для non-ASP.NET запросов (изображения, JS, CSS и т.д.), которые могут произвести 404, вам необходимо убедиться, что IIS настроен на использование тот же обработчик ошибок, в противном случае вы увидите стандартное сообщение «Страница не найден». См. Подробности: http://stackoverflow.com/questions/497735/ –

1

В моем текущем проекте я придерживаюсь Application_Error в global.asax для показа конечных пользователей - единая страница ошибки в случае любых необработанных ошибок. Я добавил вызов sendmail для отправки определенных исключений на адрес электронной почты, чтобы получить лучшее представление о том, что пошло не так (вы не можете полагаться на клиентов/посетителей, чтобы правильно описать проблему). После отправки почты и/или регистрации проблемы я перенаправляю пользователей на error.html с общей ошибкой.

В моем DAL я пытаюсь/улавливаю большинство критических функций и отображаю соответствующее предупреждение/ошибку (я возвращаю статус/сообщение, чтобы показать, например, что соединение не может быть выполнено/тайм-аут).

1

Это шаблон, с которого я начинаю начинать с запуска нового приложения. Извините, что это в VB.NET;)

В global.asax Server.Transfer к вашей странице ошибок.

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs) 

     Server.Transfer("~/Error.aspx", False) 

    End Sub 

Тогда на вашей странице с ошибкой.

Private Sub Page_Load 

     Response.Clear() 
     Dim err As Exception = Server.GetLastError 
     ... 
    End Sub 

Теперь вы можете проверить Тип исключения. Вам нужно будет пересмотреть внутренние исключения, поскольку родительское исключение, вероятно, будет общим исключением в Интернете. Получите DAL, чтобы бросить пользовательское типизированное исключение, и вы можете проверить это и обрабатывать по-разному.

0

здесь я объясняю способ реализации пользовательской страницы страницы ошибки.

Шаг за шагом реализации

  • Создание страницы с ошибкой: Разработка страницы ошибок (на страницу, которая будет отображаться при возникновении ошибки) в корневом каталоге. Давайте думать, что имя страницы ошибок является ErrorPage.aspx

  • Настройка Web.Config: написать следующий код в Web.Config

    <configuration> 
    <system.web> 
    <customErrors mode="On" defaultRedirect="~\ErrorPage.aspx"/> 
    </system.web> 
    </configuration> 
    

Вот он !!! Теперь, если возникнет какая-либо ошибка, он перенаправляется на страницу с ошибкой. Теперь Иногда нам нужно отобразить ошибку. В этом случае мы можем написать несколько строк кода в Global.asax

 void Application_Error(object sender, EventArgs e) 
     { 
      Exception ex = Server.GetLastError().GetBaseException(); 
      Session["LastException"] = ex.ToString(); 
     } 

Как исключение был захвачен в плен и хранится в сессии теперь мы можем показать сообщение от сессии. Поэтому мы можем написать следующие строки в ErrorPage.aspx.cs

  protected void Page_Load(object sender, EventArgs e) 
      { 
       lblDisplayError.Text = Session["LastException"].ToString(); 

      } 

И мы сможем увидеть ошибку на метке ErrorPage. Надеюсь, что все будет хорошо.

Благодаря

Pritom Nandy

Смежные вопросы