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


Система конфигурации в IIS 7

Уолтер Оливер

Общие сведения

В IIS 7 представлена совершенно новая система конфигурации, в основе всех новых функций, связанных с администрированием. Система конфигурации основана на распределенных XML-файлах с прозрачным текстом, которые содержат параметры конфигурации для всей платформы веб-сервера, включая IIS, ASP.NET и другие компоненты, такие как FTP 7.5; При необходимости они могут быть заданы в каталогах содержимого вместе с веб-содержимым, если они разблокированы для этого уровня. Обратите внимание, что параметры конфигурации FTP 6.0 хранятся в метабазе.

Администратор компьютера может делегировать различные уровни иерархии конфигурации другим пользователям, например владельцу сайта или разработчику приложения. Безопасные параметры по умолчанию и готовые блокировки ограничивают доступ на запись к параметрам конфигурации только администратору компьютера (исключениями являются некоторые параметры, относящиеся к сайту, например DefaultDocument); Однако сложные и детализированные функции блокировки обеспечивают безопасную разблокировку и делегирование управления определенными параметрами конфигурации для большего числа пользователей для область пространства имен веб-сайта. Система обратно совместима на уровне API с предыдущими версиями IIS (после установки уровня совместимости MetaBase).

На корневом (или глобальном) уровне есть два отдельных файла:

  • system32\inetsrv\config\applicationHost.config. Содержит глобальные значения по умолчанию для параметров веб-сервера (IIS).
  • \Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config. Содержит глобальные значения по умолчанию для параметров платформы .NET Framework, включая некоторые из ASP.NET (остальные параметры находятся в web.config в той же папке, которую иногда называют корневой web.config).

Причина, по-прежнему есть два отдельных файла, заключается в том, что две технологии версии по-разному (по расписанию и продукту). СЛУЖБЫ IIS являются частью Windows, и платформа .NET Framework может устанавливаться независимо друг от друга.

В каталогах веб-содержимого могут быть необязательные файлы web.config, которые управляют поведением уровня иерархии и вниз. Они могут быть локальными или удаленными (например, если каталог содержимого находится в UNC-ресурсе). Они могут содержать IIS, ASP.NET или любые другие параметры конфигурации .NET Framework, которые можно указать на их уровне. По умолчанию файлы web.config отсутствуют.

Иерархия

С точки зрения иерархии наследования корневой файл machine.config, затем web.config в том же каталоге (который называется корневым web.config), затем applicationHost.config, а затем необязательный web.config файлы в пространстве имен, как показано на следующей схеме. Схема, показывающая связь между файлами, содержащимися в пространствах имен I I I S 7 и Config Files.

Разделы

В файле конфигурации параметры упорядочены структурированным образом на основе единицы с именем section. Раздел конфигурации — это группа логически связанных параметров, которые могут быть развернуты в целом или отменены в системе в целом и обычно используются одним серверным модулем.

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

Разделы далее группируются в логически связанные коллекции, называемые "группами разделов". Группы разделов не являются единицей развертывания, регистрации или любой другой существенной операции (например, блокировка, шифрование). В них нет параметров. Их цель заключается в дальнейшей структуре организации параметров и предотвращении длинного неструктурированного списка разделов конфигурации. Они используются для построения иерархии параметров, поэтому между ними имеются связи (родители и потомки).

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

Ниже приведен пример, демонстрирующий разделы и группы разделов:

<!-- section group for web server configuration -->
<system.webServer>
  <!-- section group for web server security configuration -->
  <security>
    <!-- section group for web server authentication configuration -->
    <authentication>
      <!-- three sections for authentication -->
      <basicAuthentication ... />
      <windowsAutnentication ... />
      <anonymousAuthentication ... />
    </authentication>
  </security>
</system.webServer>

Каждый раздел имеет имя. Короткое имя — это имя самого раздела, а длинное — полное имя, включая все содержащиеся группы разделов. Например, полное имя windowsAuthentication — system.webServer/security/authentication/windowsAuthentication. Эта иерархическая организация позволяет использовать будущие разделы (и группы разделов) с тем же именем, но в разных группах разделов.

Каждый уровень пространства имен URL-адреса может иметь связанную конфигурацию. Конфигурация для заданного уровня наследуется до дочерних уровней, если только она не переопределена дочерним уровнем. Простой способ настройки каждого URL-адреса — использовать web.config файлы в папках физической файловой системы, сопоставленных с виртуальными путями. На корневом уровне (на уровне компьютера) следует использовать отдельные файлы в зависимости от группы разделов конфигурации (которая будет определена далее в документе; в текущих целях рассмотрим ее как имя XML-элемента, содержащего конфигурацию):

Группа разделов Описание Корневой файл
system.applicationHost Система активации Windows: модель процесса System32\inetsrv\config\applicationHost.config
system.webServer IIS: веб-сервер System32\inetsrv\config\applicationHost.config
system.web ASP.NET Windows\microsoft.net\framework\v2.0.50727\config\web.config
Системы.* Другая платформа .NET Framework Windows\microsoft.net\framework\v2.0.50727\config\machine.config
[Microsoft other] Другое приложение Майкрософт Windows\microsoft.net\framework\v2.0.50727\config\machine.config
[настраиваемое] Сторонние machine.config или корневой web.config или applicationHost.config до стороннего пользователя или клиента

Формат сохраняемости конфигурации — XML; Поэтому полезно описать сопоставления между подразделениями конфигурации и терминологией XML. Группы разделов и разделы являются XML-элементами. В разделе параметры организованы в более мелкие блоки, которые точно соответствуют терминологии XML:

Единица конфигурации Терминология XML Описание
Элемент конфигурации Элемент XML Содержит другие дочерние единицы; не имеет значения .
Коллекция конфигураций Элемент XML Частный регистр элемента: содержит группу элементов в виде add/remove/clear.
Свойство Configuration Атрибут XML Содержит только значение; не содержит дочерних единиц.

Система конфигурации управляется из декларативной схемы в ее основе. Схема конфигурации охватывает несколько файлов, которые находятся в известном расположении: system32\inetsrv\config\schema. По умолчанию доступ к этой папке имеют только администраторы компьютеров. Клиенты или сторонние компании могут добавлять файлы схемы для своих пользовательских разделов, скопировав их в этот каталог. Система конфигурации будет автоматически собирать их при запуске в процессе вызова конфигурации. Если система конфигурации уже запущена, она не будет собирать изменения в файлах схемы или новых файлах.

Не изменяйте файлы IIS или другие файлы схемы, установленные в этом каталоге, так как ошибки могут привести к повреждению схемы и невозможности запуска сервера.

Примечание

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

Три файла составляют единую схему платформы веб-сервера:

  • IIS_schema.xml: сведения о параметрах и группах разделов системы активации Windows и веб-сервера IIS.
  • ASPNET_schema.xml: охватывает параметры ASP.NET в группе разделов.
  • FX_schema.xml: охватывает другие параметры .NET Framework в различных группах разделов.

Вы также найдете FTP_schema.xml, если у вас установлен компонент FTP IIS 7.