Спонсор: Microsoft
Опубликован: 24.05.2010 | Уровень: специалист | Доступ: платный
Самостоятельная работа 5:

Работа с конфигурационными данными

< Самостоятельная работа 4 || Самостоятельная работа 5: 12 || Лекция 9 >

Разделы конфигурирования

<compilation>

Раздел <compilation> позволяет задать параметры компиляции приложения. В частности, можно установить язык используемый по умолчанию в приложении и определить параметры отладки приложения.

<compilation defaultLanguage="С#" debug="true" />

По умолчанию свойство debug = "false".

<globalization>

Раздел <globalization> позволяет настроить параметры глобализации приложения. В частности, здесь можно определить кодировку входящих и исходящих данных. По умолчанию установлена кодировка - utf-8.

<globalization requestEncoding="windows-1251" 
                   responseEncoding="windows-1251" />

<appSettings>

Пожалуй, <appSettings> является наиболее часто используемым разделом, поскольку в нем вы можете определять свои атрибуты, такие как, например, строки соединения с базой данных или заголовок окна браузера. Раздел <appSettings> имеет всего один элемент – add, который в свою очередь имеет два атрибута – key и value.

<configuration>
  <appSettings>
    <--! <add key="Ключ" value="Значение"/> -->
    <add key="MyTitle" value="Это мой заголовок окна"/>
    <add key="MyDBPath" value="А здесь находится путь к моей базе данных"/>
  </appSettings>
</configuration>

В отличии от других разделов, <appSettings> ASP .NET никак не обрабатывает и поэтому нахождение дескрипторов <appSettings> в разделе <system.web> не обязательно.

Чтобы получить указанные в <appSettings> данные, в данном случае MyTitle и/или MyDBPath, достаточно применить на ASP .NET странице свойство ConfigurationSettings.Appsettings:

Private Sub Page_Load (obj As Object, e As EventArgs)
  'Отправляем в браузер строку значение ключа MyDBPath
  Response.Write(ConfigurationSettings.AppSettings("MyDBPath"))
End Sub

Вот собственно и все. Думаю вы сумеете найти достойное применение <appSettings>.

<customErrors>

Данный раздел позволяет указать страницу, на которую будет попадать пользователь при возникновении ошибки. Например, при возникновении 404 ошибки (Ресурс не найден), вместо стандартного сообщения об ошибке, вы можете вставить свою страницу с сообщением об ошибке. <customErrors> имеет два атрибута:

defaultRedirect – указывает страницу, на которую будет отправлен пользователь при возникновении ошибки.

mode – устанавливает режим вывода ошибок и может иметь три значения: on – включен, off – выключен и remote – показывать только удаленным пользователям.

Обработка ошибок производиться элементом error, который имеет два атрибута: statuscode и redirect. Как вы уже наверное догадались, statuscode код ошибки, а redirect – страница, на которую будет перенаправлен пользователь при возникновении ошибки.

Для примера, ниже указанная конфигурация, при возникновении 404 ошибки (ресурс не найден) перенаправит пользователя на страницу error404.html, а в случае возникновения другой ошибки – на страницу error.html:

<configuration>
  <customError defaultRedirect="error.html" 
mode="on">
  <error statuscode="404" 
              redirect="error404.html" />
  </customError>
</configuration>

При возникновении ошибки, на указанную в файле конфигурации страницу, также передается параметр aspxerrorpath, который содержит виртуальный путь к файлу вызвавшему ошибку и который можно обработать объектом Request.

Например, пользователь обращается к несуществующей странице: http://localhost/news.aspx и, соответственно, возникает ошибка 404 и пользователь перенаправляется по адресу: http://localhost/error404.html?aspxerrorpath=/news.aspx

<pages>

Данный раздел позволяет установить параметры страницы, которые обычно указываются в таких директивах, как - @ Page. Это довольно удобно, когда требуется установить одинаковые параметры для всех страниц сразу. Для более наглядно примера, посмотрите следующую конфигурацию:

<configuration>
  <system.web>
    <pages buffer="true" />
  </system.web>
</configuration>

В данном примере, для всех страниц приложения включается буферизация страниц.

<sessionState>

<sessionState> позволяет установить параметры сессии и имеет следующие атрибуты:

  • mode – указывает состояние сеанса, может иметь следующие значения: off состояние сеанса отключено, inproc – информация о сеансе хранится локально (по умолчанию), stateserver – информация о сеансе хранится на другом сервере и sqlserver – информация о сеансе хранится в базе данных SQL Server.
  • cookieless – значение true данного параметра позволяет отключить использование сессией cookies в приложении, при этом сеанс будет сохраняться в строке адреса url.
  • timeout – максимальное время "жизни" сессии в режиме ожидания (по умолчанию 20 минут)
  • connectionString – строка соединения, содержащая имя сервера и порт для хранения сессии. Используется только при значении mode="stateserver".
  • sqlConnectionString – строка соединения с базой данных SQL Server. Используется только при значении mode="sqlserver".

Прочие разделы

Web.config имеет еще много разделов конфигурирования, я не буду подробно останавливаться на каждом из них, поскольку это тема не одной статьи. Ниже представлена таблица со всеми разделами конфигурирования файла web.config и кратким их описанием:

<appSettings> позволяет хранить пользовательские (ваши) параметры приложения
<authorization> позволяет настроить аутентификацию пользователей.
<authorization> конфигурирует авторизацию ресурсов.
<browserCaps> представляет возможности браузера пользователя.
<compilation> конфигурирует параметры компиляции приложений.
<globalization> конфигурирует параметры глобализации приложения.
<httpHandlers> отвечает за передачу поступающих url классам IHttpHandler и IHttpHandlerFactory. Данные раздела <httpHandlerFactory> наследуются всеми подкаталогами.
<httpModules> позволяет настроить HTTP-модули, находящиеся внутри приложения, которые участвуют в обработке каждого запроса, поступившего в приложение.
<identity> управляет доступом к ресурсам ASP .NET.
<location> определяет права доступа к указанному каталогу.
<processModel> конфигурирует параметры модели обработки.
<sessionState> устанавливает параметры сессии.
<trace> позволяет настроить службы трассировки (отладки) системы ASP .NET.
<webServices> конфигурирует параметры web-служб.
< Самостоятельная работа 4 || Самостоятельная работа 5: 12 || Лекция 9 >
Екатерина Соколова
Екатерина Соколова
Россия, Ухта
Никита Гекторов
Никита Гекторов
Украина, Донецк