Поделиться через


Управление адаптивной обработкой ошибок на веб-страницах ASP.NET для мобильных устройств

Обновлен: Ноябрь 2007

Во время обработки страницы ASP.NET ошибки создаются как исключения и обрабатываются механизмом ошибок ASP.NET.

Этот раздел предоставляет общие сведения об обработке ошибок в ASP.NET и описывает их связь с приложениями ASP.NET, содержащими мобильные веб-страницы.

Общие сведения об обработке ошибок в ASP.NET

Во время запроса могут возникнуть различные типы ошибок, включая следующие:

  • ошибки во встроенных объектах HTTP, например запрос несуществующего файла;

  • ошибка синтаксического анализа страницы, пользовательского элемента управления или другого подобного файла при его компилировании в сборку;

  • ошибка запуска веб-страницы внутри ASP.NET во время существования страницы;

  • ошибки чтения файла конфигурации;

  • системные ошибки, например нехватка памяти.

ASP.NET предоставляет несколько функций для настраиваемой обработки ошибок.

Режим обработки ошибок

Приложение можно настроить для отображения подробных ошибок с данными, важными для разработчика, базовых ошибок для обычных пользователей или настраиваемых ошибок. Параметры можно изменить таким образом, чтобы подробные ошибки отображались только в том случае, если клиентом является локальный компьютер.

Ошибки уровня приложения

Если ошибка возникает в ходе запроса, ASP.NET создает событие Application_Error. Метод в файле Global.asax может обработать это событие и переопределить поведение обработки ошибки.

Ошибки уровня страницы

Ошибки, возникающие во время существования страницы, вызывают появление события Page_Error. Обработчик для этого события должен выполнять задачи уведомления или предпринимать попытки исправления, включая подавление ошибки в зависимости от ее характера.

Настраиваемые ошибки

В файле Web.config можно указать набор настраиваемых страниц для исключений, возникающих в приложении ASP.NET. При возникновении ошибки ASP.NET проверяет, настроено ли в приложении отображение настраиваемых ошибок, а также существует ли соответствующая страница ошибки. Если какое-либо утверждение верно, ASP.NET перенаправляет пользователя на страницу ошибки, передавая параметр, который содержит исходный URL-адрес.

Общие сведения об адаптивной обработке ошибок в приложениях ASP.NET для мобильных устройств

Обработка ошибок на мобильных веб-страницах осуществляется так же, как и в других приложениях ASP.NET. Доступны такие же методы настройки. В то же время некоторые отличия в поведении делают обработку ошибок на мобильных веб-страницах более адаптивной к работе с устройствами.

Форматирование для конкретных устройств

Сообщения об ошибках автоматически форматируются согласно разметке целевого устройства. Для устройств WML разметкой является колода карт. Для устройств HTML — HTML-страница.

68b053yk.alert_note(ru-ru,VS.90).gifПримечание.

При создании настраиваемых страниц ошибок рекомендуется создавать их в виде мобильных веб-страниц ASP.NET, чтобы обеспечить им правильное форматирование для каждого устройства.

Ограниченное содержимое сообщения об ошибке по умолчанию

Для всех мобильных устройств используются очень краткие встроенные сообщения об ошибках, даже в том случае, если приложение настроено на отображение подробных сообщений. Сообщение об ошибке обычно содержит тип возникшего исключения и метод, вызвавший его. Однако если клиентом является обозреватель настольного компьютера, то отображается стандартное сообщение об ошибке.

Код ответа HTTP

Когда ASP.NET сообщает об исключении, установленный код ответа HTTP отражает природу ошибки. Обозреватели могут отреагировать на код ответа или отобразить подробные сведения об ошибке, которая содержится в основной части ответа. В то же время некоторые мобильные устройства (в особенности телефоны на базе WML) показывают код ответа только при наличии ошибки. Если для такого устройства возникает ошибка, запрос возвращает код ответа HTTP 200, что указывает на успешное выполнение операции, но основная часть страницы содержит сообщение об ошибке. Для устройств HTML запрос возвращает действительный код ошибки, чтобы дать возможность обозревателю выполнить соответствующие действия.

Адаптивный процесс обработки ошибок

Для мобильных веб-страниц ASP.NET находит сообщения об ошибках и выводит их следующим образом:

  1. Если возникает ошибка уровня приложения, то ее обрабатывает HTTP-модуль типа ErrorHandlerModule. (Этот модуль устанавливается автоматически.)

  2. Если ошибка возникает на уровне страницы во время ее существования, ASP.NET вызывает метод страницы OnError. Так как страница является мобильной, вызывается реализация переопределения MobilePage, которая, в свою очередь, вызывает метод HandleError присвоенного адаптера страницы. Метод адаптера может сообщить подробности ошибки и возвратить значение, указывающее на то, что ошибка была обработана. Если этого не происходит, обработка исключения продолжается. ASP.NET автоматически использует настраиваемые страницы ошибок.

  3. ASP.NET вызывает обработчик ошибок на шаге 1. Если целевым устройством является обозреватель HTML, способный отображать полное сообщение об ошибке ASP.NET, то метод завершается.

  4. В противном случае ASP.NET собирает информацию об исключении, создает экземпляр внутренне определенной мобильной страницы типа ErrorFormatterPage, привязывает данные к собранным ранее и выводит результаты. Эта страница отвечает за создание сообщения об ошибке для конкретного устройства. Так как исключение было обработано, метод события не возвращает код статуса ошибки HTTP.

См. также

Другие ресурсы

Руководство разработчика приложений

Разработка веб-страниц ASP.NET для мобильных устройств