Совместимость метабаз со службами IIS 7 и более поздних версий

Саад Ладки (Saad Ladki)

Введение

Система конфигурации в IIS 7 и более поздних версиях совместима с устаревшими интерфейсами конфигурации на уровне API. Он поддерживает интерфейс Администратор базовых объектов (ABO), также известный как IMSAdminBase, а также поставщики ADSI и WMI, созданные на основе ABO в IIS 6.0. Существующие приложения и скрипты по-прежнему могут вызывать эти программные интерфейсы в IIS 7.0 и более поздних версий и продолжать работать, пока установлен компонент совместимости метабаз iis.

Примечание

По умолчанию этот компонент не установлен.

Установка поддержки совместимости метабаз

Этот компонент можно найти в разделе Настройка в разделе Internet Information Services-Web> Management Tools —> IIS 6.0 Management Capability Featurey Featurey( Компонент управления IIS 6.0).

Этот компонент не установлен по умолчанию, так как службы IIS изначально не настроены для его использования. Устаревшие интерфейсы имеют некоторые ограничения и не идеально подходят для работы с распределенными файлами конфигурации (см. раздел Ограничения ниже); Поэтому рекомендуется, чтобы со временем, особенно при открытии системы конфигурации для большего и большего делегирования (т. е. все больше и больше web.config файлов с параметрами IIS в них присутствуют в системе), клиенты рассмотрит возможность переноса устаревших скриптов и приложений в новую систему и ее интерфейсы.

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

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

Принцип работы совместимости метабазы

Функция совместимости метабазы выполняется внутри службы метабазы (IISADMIN). Он перехватывает все вызовы методов в ABO. Если сведения в вызове метода связаны с конфигурацией веб-сервера, они сопоставляются с новой системой. Если он связан с конфигурацией FTP, SMTP или NNTP, то он следует обычной логике системы метабазы и попадает в файл метабазы.

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

Решение о сопоставлении основано на рассматриваемом узле метабазы. Конфигурация веб-сервера обычно находится в LM/W3SVC, включая пользовательские свойства, с некоторыми дополнениями, такими как Mime Maps.

Сопоставление выполняется для преобразования между представлением ABO и новым системным представлением. Например, в новой системе есть концепция приложений для каждого сайта и, прежде всего, всех виртуальных каталогов. Устаревшая система обрабатывает приложения по-разному: это просто виртуальные каталоги со специальным свойством, чтобы пометить их как приложения (AppIsolated или AppRoot).

При вызове ABO для записи конфигурации веб-сервера компонент совместимости метабазы сохранит данные в applicationHost.config. Это называется "сквозной записью", так как информация не хранится в памяти. При вызове ABO для чтения конфигурации веб-сервера компонент совместимости метабазы считывает ее из applicationHost.config. Это называется "чтением", так как информация снова не извлекается из памяти.

Неполные данные, которые не готовы к использованию серверной средой выполнения, сохраняются в специальном разделе в applicationHost.config, который называется customMetadata. Этот раздел используется в качестве постоянного хранилища для функции совместимости метабаз, и клиенты никогда не должны изменять его содержимое. Примером неполных данных является то, что устаревший скрипт задает идентификатор сайта, но не привязки сайта. В IIS 6.0 такой вызов создал бы недопустимый объект сайта в конфигурации. В IIS 7.0 и более поздних версий он хранится в разделе , который не используется сервером. Если последующий вызов выполняется для задания привязок сайта, то объект сайта считается завершенным и полностью сохраняется в разделе, где он будет выбран серверной средой выполнения. Временные данные будут удалены из этой точки, поэтому пользователю не придется очищать остатки из системы. Если такой последующий вызов не будет выполнен, среда выполнения сервера никогда не увидит этот недопустимый сайт, но устаревшие скрипты будут иметь его в представлении ABO, как и в IIS 6.0. С точки зрения устаревших сценариев система полностью совместима со службами IIS 6.0.

Свойства пользовательского веб-сервера, заданные с помощью устаревших скриптов и приложений, всегда сохраняются в разделе . Их можно получить через устаревший интерфейс, как в IIS 6.0, поэтому система полностью совместима. Очевидно, что это сильно отличается от рекомендуемого способа расширения системы конфигурации IIS, поэтому еще одна причина рассмотреть возможность переноса таких приложений с течением времени для использования новых интерфейсов и новых функций, предлагаемых системой конфигурации IIS 7.0 и более поздних версий.

Другие данные конфигурации метабазы

Обратите внимание, что конфигурация FTP, SMTP и NNTP по-прежнему сохраняется в системе метабазы и не переносится в новые системы конфигурации IIS. Параметрами конфигурации для них по-прежнему можно управлять с помощью устаревших программных интерфейсов и прямого редактирования файла metabase.xml.

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

Большинство операций с ключами и свойствами метабазы работают легко, и пользователю предоставляются эти устаревшие концепции и имена, а не новые понятия IIS, такие как разделы конфигурации и именованные свойства (ABO продолжает работать с идентификаторами свойств; ADSI продолжает работать с устаревшими именами свойств.

Устаревшие пользователи по-прежнему могут использовать схему ADSI и даже расширять ее, как раньше, в IIS 6.0.

Совместимость XML-файлов

Конфигурация веб-сервера, включая настраиваемую конфигурацию, расширяющую веб-сервер, сохраняется в system32\inetsrv\applicationHost.config, а не metabase.xml. Поэтому поддержка устаревших версий выполняется на уровне API, а не на уровне формата файлов (и именно поэтому некоторые устаревшие функции не поддерживаются). Вызывающий объект устаревшего интерфейса получит представление ABO конфигурации так же, как и в IIS 6.0, а не новый формат файла, именование или понятия.

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

Такие функции, как файлы журнала, резервное копирование, восстановление и импорт и экспорт, работают по-разному, так как они зависят от новой системы конфигурации. Поэтому вызовы ABO к конфигурации резервного копирования будут игнорироваться.

Устаревшие функции метабазы

Аудит конфигурации был добавлен в IIS 6.0 в Windows Server® 2003 с пакетом обновления 1 (SP1). В настоящее время она не поддерживается службами IIS 7.0 и более поздних версий, так как новая система конфигурации очень отличается (например, IIS 7.0 и более поздних версий используют систему конфигурации in-proc, IIS 6.0 использует выделенную службу NT, которая инкапсулируется из пользовательского кода в других процессах).

Свойства метабазы прежних версий

Поддерживаются только устаревшие свойства. Свойства конфигурации IIS 7.0 и более поздних версий не возвращаются пользователю прежних версий, а также свойства конфигурации .NET Framework.

Ограничения сопоставления

Алгоритм сопоставления должен учитывать различия между системами конфигурации IIS 6.0 и IIS 7.0 и более поздних версий. Например, в IIS 6.0 не требовалось, чтобы сайты имели имена ("комментарии сервера"); и если им присваиваются имена, то не требуется, чтобы эти имена были уникальными. В IIS 7.0 и более поздних версий каждый сайт должен иметь уникальное имя. Поэтому сопоставление старого свойства ServerComment с новым свойством Name не является тривиальным. Алгоритм сопоставления заставляет имена быть уникальными для каждого сайта, так как это требование системы конфигурации IIS 7.0 и более поздних версий; Это делается путем добавления чисел к комментариям сервера для создания уникальности. В конечном итоге значение, которое фактически задано для комментария сервера, отличается от значения, заданного скриптом.

Распределенная конфигурация

Функция совместимости метабазы поддерживает только applicationHost.config. Конфигурация в web.config файлах не возвращается пользователю прежних версий. Теги расположения используются в applicationHost.config для поддержки конфигурации по URL-адресу.