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


Структура файла конфигурации ASP.NET (разделы и обработчики разделов)

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

Все сведения о конфигурации ASP.NET находятся внутри элемента configuration в файлах Web.config. Данные, содержащиеся в этом элементе, разбиты на две основных области: область объявления обработчиков разделов конфигурации и область параметров разделов конфигурации.

Объявления обработчиков разделов конфигурации

Область объявления обработчиков разделов конфигурации находится внутри элемента configSections в файлах Web.config. Она содержит элементы разделов конфигурации ASP.NET, в которых объявляются обработчики. Эти объявления обработчиков разделов конфигурации могут быть вложены в элементы sectionGroup, что помогает организовать сведения о конфигурации. Обычно элементы sectionGroup представляют пространство имен, к которому применяются параметры конфигурации. Например, все обработчики разделов конфигурации ASP.NET собираются в группу разделов system.web, как показано в следующем примере кода.

    <sectionGroup name="system.web"
      type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <!-- <section /> elements. -->
    </sectionGroup>

Для каждого раздела конфигурации в области параметров раздела конфигурации имеется объявление обработчиков разделов конфигурации. Обработчик разделов является классом платформы .NET Framework, который реализует интерфейс ConfigurationSection. Объявления обработчиков разделов содержат имя раздела параметров конфигурации (например pages) и имя класса обработчика разделов, обрабатывающего данные конфигурации в этом разделе (например System.Web.Configuration.PagesSection). Это показано в следующем примере кода.

      <section name="pages"
        type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      </section>

Обработчик разделов конфигурации достаточно объявить только один раз. Используемые по умолчанию обработчики разделов для разделов конфигурации ASP.NET уже объявлены в файле Machine.config по умолчанию. Корневой файл Web.config и другие файлы конфигурации в приложениях ASP.NET автоматически наследуют от обработчиков конфигурации, объявленных в файле Machine.config. При создании пользовательского класса обработчиков разделов, обрабатывающего раздел пользовательских параметров, необходимо объявить только новый обработчик разделов.

Предварительно заданные разделы параметров конфигурации ASP.NET перечислены в разделе Параметры конфигурации ASP.NET. Сведения об определении собственных разделов параметров и разработке собственных обработчиков разделов конфигурации для управления ими см. в разделах Классы, использующиеся для создания обработчиков определенных разделов и Практическое руководство. Создание пользовательских разделов конфигурации с помощью класса ConfigurationSection.

Параметры разделов конфигурации

Область параметров разделов конфигурации следует за областью объявления обработчиков разделов конфигурации и содержит собственно параметры конфигурации.

По умолчанию для каждого элемента section и sectionGroup в области configSections существует элемент раздела конфигурации, заданный внутренне или в одном из корневых файлов конфигурации. Эти значения по умолчанию можно просмотреть в файле systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Machine.config.comments.

Элемент раздела конфигурации может также содержать дочерние элементы, обрабатываемые тем же обработчиком разделов, что и родительский элемент. Например, следующий элемент pages содержит элемент namespaces, для которого соответствующий обработчик разделов отсутствует, так как его обработка выполняется обработчиком разделов pages.

  <pages
    buffer="true"
    enableSessionState="true"
    asyncTimeout="45"
  <!-- Other attributes. -->
  >
    <namespaces>
      <add namespace="System" />
      <add namespace="System.Collections" />
    </namespaces>
  </pages>

Пример из файла Web.config

В следующем примере кода показано, каким участкам файла Web.config соответствуют предыдущие примеры кода. Обратите внимание на то, что у элемента namespaces элемента pages отсутствует объявление обработчика разделов конфигурации. Это связано с тем, что обработчик разделов System.Web.Configuration.PagesSection обрабатывает все дочерние элементы раздела параметров pages.

<?xml version="1.0" encoding="us-ascii"?>
<configuration>

<!-- Configuration section-handler declaration area. -->
  <configSections>
    <sectionGroup name="system.web"
      type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <section
        name="pages" 
        type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
      />
      <!-- Other <section /> elements. -->
    </sectionGroup>
    <!-- Other <sectionGroup /> and <section /> elements. -->
  </configSections>

<!-- Configuration section settings area. -->
  <pages
    buffer="true"
    enableSessionState="true"
    asyncTimeout="45"
  <!-- Other attributes. -->
  >
    <namespaces>
      <add namespace="System" />
      <add namespace="System.Collections" />
    </namespaces>
  </pages>
  <!-- Other section settings elements. -->

</configuration>

Проблемы, связанные с редактированием

Элементы, содержащиеся в разделах конфигурации, должны соответствовать правильному формату XML, поэтому эти элементы и атрибуты зависят от регистра. Существует много способов изменения параметров конфигурации. Дополнительные сведения см. в разделе Изменение файлов конфигурации ASP.NET.

Обработчики пользовательских разделов конфигурации должны создаваться программно перед использованием элементов пользовательских разделов в файлах конфигурации ASP.NET. Дополнительные сведения см. в разделе Практическое руководство. Создание пользовательских разделов конфигурации с помощью класса ConfigurationSection.

Атрибуты Path в файлах конфигурации

При задании ссылки на путь веб-приложения атрибуты path в файлах Web.config могут начинаться с «~/», что указывает на корень приложения. Дополнительные сведения см. в разделе Путь к веб-узлу ASP.NET.

См. также

Задачи

Практическое руководство. Создание пользовательских разделов конфигурации с помощью класса ConfigurationSection

Практическое руководство. Создание пользовательских разделов конфигураций с помощью IConfigurationSectionHandler

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

Администрирование веб-узлов ASP.NET

Параметры конфигурации ASP.NET

Настройка приложений