Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Краткие сведения
Расширение средства диспетчера IIS для управления пользовательской конфигурацией (в распределенных файлах конфигурации) на сервере IIS 7.0 и выше включает использование API из двух разных сборок, Microsoft.Web.Administration.dll и Microsoft.Web.Management.dll. Эти API должны использоваться для очень разных действий и имеют принципиально разные цели. В этом документе представлен краткий обзор функций этих API и связи между ними.
Введение
Если вы планируете добавить пользовательский интерфейс в диспетчер IIS (InetMgr) для управления пользовательскими параметрами в файлах конфигурации сервера, вы будете использовать API из Microsoft.Web.Administration.dll и Microsoft.Web.Management.dll. Функциональные возможности, предоставляемые API из этих сборок, существенно отличаются и могут быть запутанными для разработчика, использующего его в первый раз. В этой статье кратко рассматривается, что предлагает каждая из этих сборок.
Что такое Microsoft.Web.Administration и Microsoft.Web.Management?
В этом разделе представлено краткое введение в каждое из этих разделов.
Microsoft.Web.Administration
API Microsoft.Web.Administration (MWA) построены как оболочка управляемого кода поверх API администрирования узла приложений (AHADMIN), это библиотека нативного интерфейса. Он предоставляет программный способ доступа и обновления сведений о конфигурации и администрирования веб-сервера.
Microsoft.Web.Administration.dll — это простой способ настройки параметров на сервере. Он не поддерживает добавление расширяемости или функциональности пользовательского интерфейса. На самом деле, несколько функций пользовательского интерфейса в диспетчере IIS используют этот API для управления параметрами конфигурации на серверной части.
API MWA используется, когда разработчик хочет написать программу в управляемом коде (C#, VB и т. д.) для настройки сервера в определенном порядке. Этот API используется из автономных консольных приложений или из компонента пользовательского интерфейса в диспетчере IIS.
Эти API также поддерживают доступ к конфигурации во время выполнения (например, из управляемого модуля в конвейере IIS).
Microsoft.Web.Management
Microsoft.Web.Management.dll имеет платформу для добавления новых функций пользовательского интерфейса в средство диспетчера IIS. Платформа имеет расширяемость для разработки новых функций и предоставляет базовые классы и другие функциональные возможности. Это позволяет пользовательским расширениям быть гражданами первого класса в пользовательском интерфейсе, и они имеют внешний вид и чувствуют себя идентичными встроенным функциям IIS и ASP.Net.
Диспетчер IIS имеет модульную инфраструктуру, в которой каждая функция пользовательского интерфейса является собственной сущностью и должна быть отдельно зарегистрирована в средстве. Архитектура клиентского сервера диспетчера IIS отделяет логику, которая управляет параметрами сервера от кода. При этом эти параметры отображаются в удобном для пользователя режиме. Каждая функция в средстве следует этой парадигме клиентского сервера. Это применяется путем предоставления четко определенных базовых классов для кода пользовательского интерфейса на стороне сервера и клиента в диспетчере IIS.
Этот API также предоставляет механизм расширяемости для разработки функций пользовательского интерфейса, представленных в виде списков, сетки свойств, настраиваемых панелей действий, модальных мастеров и диалогов (для названия нескольких).
Многие из существующих функций пользовательского интерфейса, которые приставляются с инструментом, используют API MWA (в серверном коде) для доступа к конфигурации.
Microsoft.Web.Administration
Как упоминалось ранее, API MWA можно использовать для управления параметрами на сервере. Они предоставляют встроенный строго типизированный доступ к сайтам, приложениям и виртуальным каталогам, настроенным для IIS. Эти API также позволяют пользователям создавать собственные строго типизированные классы, представляющие определенные разделы конфигурации, и таким образом создавать простой способ доступа к свойствам и другим сведениям, хранящимся в этих разделах.
Это не является комплексным списком, и эта сборка предлагает гораздо больше, чем описано здесь.
ServerManager и сайты, приложения и виртуальные каталоги
Точка входа для администрирования свойств сервера — это класс ServerManager. ServerManager содержит ссылку на список всех сайтов на этом сервере IIS, и к отдельным сайтам можно получить доступ через индексирование в коллекции сайтов.
Доступ к приложениям и виртуальным каталогам можно получить аналогичным образом. Эти сущности также предоставляют сведения о состоянии среды выполнения (например, запущен или остановлен сайт). Обновления вносятся в параметры по умолчанию для всего сервера или свойств, принадлежащих отдельной сущности (например, обновления определенного сайта).
Параметры сервера обновляются при вызове CommitChanges на сервере ServerManager.
Ниже приведен обзор некоторых строго типизированных классов, предлагаемых этой сборкой:
Доступ к отдельным файлам конфигурации
Распределенная модель файла конфигурации, которая использует IIS, позволяет сайту, приложению, виртуальному каталогу или даже папке иметь свою конфигурацию в файле web.config.
Для настройки параметров для конкретной сущности можно получить доступ к отдельным файлам конфигурации. Метод GetApplicationHostConfiguration используется для доступа к applicationHost.config, а метод GetWebConfiguration принимает параметры для получения определенных файлов конфигурации.
Универсальные базовые классы для расширяемости
Система конфигурации IIS позволяет создать раздел, в котором указываются свойства, относящиеся к приложению. Используя API MWA, создайте строго типизированные классы в управляемом коде для управления этими параметрами. Ниже приведены некоторые базовые классы, которые упрощают следующие действия.
- Конфигурация: представляет один файл конфигурации (applicationHost.config или файлы web.config для сайтов и приложений)
- ConfigurationElement: универсальная сущность, используемая для представления элемента в файле конфигурации. Это базовый класс для разделов конфигурации, записей коллекции, вложенных элементов в разделе и т. д.
- ConfigurationAttribute: представляет свойство в ConfigurationElement
- ConfigurationSection: является производным от ConfigurationElement и представляет раздел, определенный в файлах схемы IIS. Используется для доступа к различным свойствам раздела.
- ConfigurationElementCollection: Класс коллекции, состоящий из ConfigurationElements. Также является производным от ConfigurationElement.
Ниже показан простой обзор расширяемости универсальной конфигурации:
Доступ к конфигурации во время выполнения
WebConfigurationManager используется для доступа среды выполнения к параметрам конфигурации сервера. Управляемый модуль, загруженный в конвейер IIS, обращается к параметрам конфигурации в определенном контексте (например, запрос на определенный сайт), ссылаясь на этот класс.
Microsoft.Web.Management
API Microsoft.Web.Management (MWM) — это стандартные блоки для разработки серверного кода для управления параметрами администрирования и функций пользовательского интерфейса на стороне клиента (которые позволяют пользователям просматривать эти параметры и управлять ими в понятном порядке).
Ниже приведены краткие описания некоторых важных классов в каждом пространстве имен. Опять же, это не полный список, и эта сборка предлагает гораздо больше, чем обсуждается здесь.
Высокоуровневое представление о том, что эта сборка предлагает:
Microsoft.Web.Management.Server
Классы, производные от базового класса ModuleProvider , образуют точку входа для диспетчера IIS для идентификации модуля пользовательского интерфейса. Это класс, который должен быть зарегистрирован в administration.config диспетчера IIS, чтобы отобразить его в составе набора компонентов.
Классы, производные от базового класса ModuleService , образуют мясо серверного администрирования. Эти классы выполняют фактические манипуляции с параметрами сервера. Методы в классе, который должен быть видим для клиента пользовательского интерфейса, помечены атрибутом ModuleServiceMethod .
ManagementUnit предоставляет разработчику контекст, в котором выполняется администрирование сервера. Например, SiteManagementUnit и ApplicationManagementUnit соответствуют подключениям сайтов и подключениям приложений в средстве диспетчера IIS. Базовый класс ModuleService предоставляет доступ к текущему ManagementUnit, который можно использовать для получения сведений о текущем контексте.
ManagementConfigurationPath — это класс, представляющий путь (к текущему серверу, сайту, приложению или папке). Если вы управляете сайтом, это содержит имя сайта и другие соответствующие сведения о сайте. ManagementUnit предоставляет текущий ManagementConfigurationPath.
ManagementConfiguration — это вспомогательный класс для доступа к параметрам конфигурации и управления ими на сервере. Это очень мощная абстракция для класса Конфигурации в API MWA, определенного ранее, и позволяет запрашивать разделы, не беспокоясь о том, определены ли эти разделы в applicationHost.config или в корневой web.config.
PropertyBag — это тип контейнера, который используется для хранения данных, передаваемых между клиентом и сервером. Это реализуется как универсальный словарь. Словарь сериализуется в строку при передаче данных в сценариях удаленного администрирования сервера.
Microsoft.Web.Management.Client
Классы, производные от базового класса модуля , образуют точку входа для функции для регистрации компонентов пользовательского интерфейса. Это указывает, является ли пользовательский интерфейс для этого модуля страницей (отображаемой в центральной области диспетчера IIS), узлом в дереве или просто задачей в области действий (для перечисления нескольких примеров).
ModuleServiceProxy — это базовый класс заглушек методов, используемых для доступа к реальным методам службы, указанным в ModuleService на сервере.
HierarchyInfo представляет узел в представлении дерева и поддерживает несколько действий на узле.
Класс Connection содержит все сведения о контексте текущего сеанса управления (сеанс управления, определяющий подключение к серверу, сайту или приложению). Он предоставляет вспомогательные функции для доступа к службам, созданию прокси-серверов и т. д.
TaskItem — это базовый класс для задач, добавленных в область действий в диспетчере IIS. Классы, такие как MethodTaskItem, TextTaskItem и т. д. являются производными от этого базового класса и отображают ссылки, метки, оповещения и другие сведения в области действий. Разработчику не нужно писать дополнительный код пользовательского интерфейса для отображения этих действий.
Microsoft.Web.Management.Client.Win32
ModulePage — это базовый класс для всех функций, которые отображают "страницу" в центральной области средства диспетчера IIS. Классы, такие как ModuleListPage, ModuleDialogPage и ModulePropertiesPage, являются производными от ModulePage. Это базовые классы, которые позволяют легко разрабатывать страницы, отображающие списки, диалоги и сетки свойств.
Базовый класс TaskForm позволяет разработчикам создавать формы, которые отображаются как модальное диалоговое окно.
WizardForm образует базовые классы всех диалоговых окон. Разработчики могут указать несколько производных классов WizardPage для подключения к мастеру.
Microsoft.Web.Management.Client.Extensions
Классы в этом пространстве имен обеспечивают расширяемость на стороне клиента с помощью IExtensibilityManager. Например, AuthenticationFeature выполняет операции для каждой записи в разделе аутентификации в инструменте InetMgr.
Это краткий обзор функциональных возможностей, которые API Microsoft.Web.Administration и Microsoft.Web.Management предлагают разработчику, который хочет расширить конфигурацию и пользовательский интерфейс для добавления собственных функций. Дополнительные сведения о том, как работает расширяемость конфигурации и расширяемость пользовательского интерфейса, см. в отдельных статьях, посвященных этим темам.