страница с распространенными ошибками в ASP.NET - PullRequest
1 голос
/ 11 февраля 2009

Как настроить страницу с общей ошибкой на веб-сайте ASP.NET? Также, как обработать ошибку на уровне доступа к данным на странице с общей ошибкой?

Ответы [ 3 ]

1 голос
/ 11 февраля 2009

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

На сервере global.asax. Перейдите на пользовательскую страницу ошибок.

    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, чтобы выдать пользовательское исключение, и вы можете проверить это и обработать по-другому.

1 голос
/ 11 февраля 2009

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

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

0 голосов
/ 21 декабря 2010

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

Пошаговая реализация

  • Страница создания ошибки: Разработка страницы ошибки (страницы, которая должна отображаться при возникновении ошибки) в корневом каталоге. Давайте предположим, что имя страницы ошибки: 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. Надеюсь, что все будет хорошо.

Спасибо

Притом Нэнди

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...