Конфигурирование и настройка Microsoft ASP.NET

       

Работа с разделом <customErrors>


Раздел <customErrors> позволяет управлять сообщениями об ошибках, выводимыми пользователям. Это очень важный шаг при разработке дружественных к пользователю приложений. Имеется два типа ошибок, возвращаемых пользователям.

  • Ошибки HTTP. Ошибки HTTP генерируются по нескольким причинам, включая отсутствие запрашиваемой страницы (404) или отсутствие прав доступа к запрашиваемой странице (403).
  • Ошибки кода. Ошибки в вашем коде могут возникнуть из-за проблем с подключением к базе данных, неверным преобразованием типов данных или какой-либо недопустимой процедурой.

По умолчанию оба типа ошибок выдают пользователям отвратительные сообщения об ошибках. Это вопрос не только эстетический, но также и вопрос безопасности, так как сообщение об ошибке может включать информацию об имени пользователя или пароле. Элемент <customErrors> имеет два свойства: свойство mode и свойство defaultRedirect. Ниже приведен синтаксис элемента <customErrors>.

<customErrors mode="On" defaultRedirect="customerror.aspx"> </customErrors>

Свойство mode определяет, когда должны отображаться "дружественные" сообщения об ошибках, а когда – настоящие. Таблица 4.7 содержит список возможных значений свойства mode.

Таблица 4.7. Значения свойства mode

ЗначениеОписание
OnРазрешает настройку ошибок. Если не указана страница defaultRedirect, пользователям представляется стандартное сообщение об ошибке. Стандартное сообщение не определяет причину ошибки, а только отражает сам факт ее возникновения. (Сообщение об ошибке большое и желтое; позже вы узнаете, как изменить его внешний вид.)
OffОтключает настройку ошибок. В этом случае пользователи при возникновении ошибки увидят полное сообщение об ошибке. Хотя это нежелательно при регулярном использовании вашего приложения, такая информация неоценима на этапах разработки и отладки.
RemoteOnlyЯвляется комбинацией двух предыдущих значений: параметр RemoteOnly представляет полное детализированное сообщение об ошибке, когда доступ к приложению осуществляется с системы, на которой оно размещено, а при доступе к нему с других систем отображает дружественное сообщение об ошибке. Если вы занимаетесь разработкой на той же машине, на которой расположено ваше приложение, это значение будет очень полезным, так как оно не потребует внесения изменений, когда вы перейдете от разработки к эксплуатации.
<
Когда приложение находится на стадии разработки, вы захотите видеть полные сообщения об ошибках, так что установите режим в значение Off или RemoteOnly. Когда начинается регулярная эксплуатация приложения, важно установить режим в значение On или RemoteOnly, так что пользователи не увидят подробных сообщений об ошибках.

При установке режима в значение RemoteOnly или Off пользователь видит стандартное сообщение об ошибке (большую отвратительную желтую страницу). Было бы здорово иметь возможность настраивать это стандартное сообщение и, возможно, включать в него логотип компании или информацию о технической поддержке. Свойство defaultRedirect используется для отображения стандартного сообщения об ошибке со страницы, отличной от страницы по умолчанию. Таким образом, вы можете создать для своего приложения собственное сообщение об ошибке, а затем указать URL этой страницы в свойстве defaultRedirect элемента <customErrors>, например:

<customErrors mode="On" defaultRedirect="customerror.aspx"> </customErrors>

При возникновении в приложении ошибки пользователь вместо подробного или стандартного сообщения об ошибке увидит customerror.aspx.


Содержание раздела