Система конфигурации в 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 файлы в пространстве имен, как показано на следующей схеме.
Разделы
В файле конфигурации параметры упорядочены структурированным образом на основе единицы с именем 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.