Общие сведения о конфигурационном API ASP.NET

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

Конфигурационный API ASP.NET позволяет разрабатывать, развертывать данные конфигурации приложения и управлять ими с использованием единого интерфейса программирования. Можно использовать конфигурационный API для программной разработки и изменения всей конфигурации ASP.NET без непосредственного редактирования XML-кода в конфигурационных файлах. Кроме того, конфигурационный API можно использовать в разрабатываемых консольных приложениях и сценариях, веб-инструментах управления и оснастках консоли управления (MMC). В состав платформы .NET Framework 2.0 входят следующие два средства управления конфигурацией, использующие конфигурационный API:

  • оснастка ASP.NET консоли управления (MMC), использующая конфигурационный API для упрощения выполнения задач администрирования, обеспечивая интегрированное представление локальных данных всех уровней конфигурации;

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

Конфигурационный API ASP.NET отделен от API программного конфигурирования IIS. Дополнительные сведения см. в разделе Программное администрирование IIS (на английском языке).

Возможности конфигурационного API

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

Для облегчения управления конфигурацией приложения конфигурационный API позволяет просматривать объединенные данные со всех уровней конфигурационной иерархии в виде единой коллекции, вместо того чтобы создавать отдельную коллекцию для каждого файла конфигурации. Кроме того, конфигурационный API позволяет манипулировать всей конфигурацией приложения без непосредственного редактирования XML-кода в конфигурационных файлах. Наконец, этот API упрощает выполнение задач конфигурирования благодаря поддержке административных средств, таких как средство администрирования веб-узлов.

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

Конфигурационный API не поддерживает создание приложений IIS. Сведения о написании административных приложений IIS см. в документе Использование System.DirectoryServices для настройки IIS в пакете SDK веб-сервера IIS.

Работа с параметрами локальной и удаленной конфигурации

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

Если для указанной сущности отсутствует файл конфигурации, объект Configuration представляет параметры конфигурации по умолчанию, определенные в файле Machine.config.

Объект Configuration можно получить с помощью открытых методов конфигурации следующих классов:

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

  • Чтение.   Методы GetSection и GetSectionGroup используются для чтения данных конфигурации. Пользователь или процесс, который осуществляет чтение, должен иметь разрешения на чтение всех конфигурационных файлов в иерархии.

    ms228060.alert_note(ru-ru,VS.90).gifПримечание.

    При использовании статического метода GetSection, принимающего параметр path, параметр path должен указывать на приложение, в котором выполняется код. В противном случае данный параметр игнорируется, и возвращаются данные конфигурации текущего приложения.

  • Запись   Для записи данных конфигурации используются методы Save. Пользователь или процесс, который осуществляет запись, должен иметь разрешения на запись файла конфигурации и каталога на текущем уровне конфигурации, а также разрешения на чтение всех файлов конфигурации в иерархии.

Для создания файла конфигурации, представляющего унаследованные параметры конфигурации для определенной сущности, используйте один из следующих методов сохранения конфигурации:

  • Save для создания нового файла конфигурации;

  • SaveAs для создания нового файла конфигурации в другом месте.

ms228060.alert_note(ru-ru,VS.90).gifПримечание.

Чтобы разрешить доступ к параметрам конфигурации на удаленном компьютере, используйте программу командной строки Aspnet_regiis. Подробные сведения об этом средстве см. в разделе Программа регистрации IIS для ASP.NET (Aspnet_regiis.exe). Сведения о создании пользовательских параметров конфигурации (отличных от стандартных параметров и разделов, определяемых платформой .NET Framework) и доступе к этим параметрам см. в описании класса ConfigurationSection.

Примеры кода

Для получения данных о конфигурации приложения, в котором выполняется страница ASP.NET, из кода этой страницы можно использовать следующий код. В этом примере кода используется статический метод WebConfigurationManager.GetSection.

System.Web.Configuration.UrlMappingsSection urlMaps =
    (System.Web.Configuration.UrlMappingsSection)
    System.Web.Configuration.WebConfigurationManager.GetSection(
    "system.web/urlMappings");
Bool urlMappingsEnabled = urlMaps.IsEnabled;

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

System.Configuration.Configuration config =
    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(
    "/SampleWebApp");
System.Web.Configuration.UrlMappingsSection urlMaps =
    (System.Web.Configuration.UrlMappingsSection)
    System.Web.Configuration.WebConfigurationManager.GetSection(
    "system.web/urlMappings");
bool urlMappingsEnabled = urlMaps.IsEnabled;

Классы конфигурации и пространства имен

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

Класс конфигурации или пространство имен

Описание

Пространство имен System.Configuration

Содержит важнейшие классы конфигурации для всех приложений платформы .NET Framework. Сюда входят классы обработки разделов конфигурации клиента платформы .NET Framework, определенных в Схема файлов конфигурации для .NET Framework. Классы обработки разделов используются для получения данных, содержащихся в разделах конфигурации, с помощью таких методов, как GetSection и GetSectionGroup. Эти два метода не являются статическими. Дополнительные сведения см. выше в подразделе Работа с параметрами локальной и удаленной конфигурации данного раздела.

Классы обработки разделов ASP.NET содержатся в пространстве имен System.Web.Configuration.

Класс System.Configuration.Configuration

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

Этот класс содержит такие методы, как GetSection и GetSectionGroup, используемые для обновления параметров конфигурации и получения ссылок на разделы и группы разделов. Эти два метода не являются статическими. Дополнительные сведения см. выше в подразделе Работа с параметрами локальной и удаленной конфигурации данного раздела.

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

Пространство имен System.Web.Configuration

Содержит классы обработки разделов конфигурации ASP.NET, определенных в Параметры конфигурации ASP.NET. Классы обработки разделов используются для получения данных, содержащихся в разделах конфигурации, с помощью таких методов, как GetSection и GetSectionGroup. Эти два метода являются статическими. Дополнительные сведения см. выше в подразделе Работа с параметрами локальной и удаленной конфигурации данного раздела.

Класс System.Web.Configuration.WebConfigurationManager

Предоставляет методы для получения ссылок на параметры конфигурации времени разработки и времени выполнения. Типом возвращаемых этими методами значений является класс System.Configuration.Configuration. Статический метод GetSection данного класса и не являющийся статическим метод GetSection класса System.Configuration.ConfigurationManager взаимозаменяемы. Дополнительные сведения см. выше в подразделе Работа с параметрами локальной и удаленной конфигурации данного раздела.

Для работы с конфигурацией веб-приложения рекомендуется использовать класс System.Web.Configuration.WebConfigurationManager, а не System.Configuration.ConfigurationManager.

Пространство имен System.Configuration.Provider

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

Пространство имен System.Web.Management

Содержит классы и интерфейсы для управления веб-приложениями и отслеживания их работоспособности. Строго говоря, это пространство имен не является частью конфигурационного API. В частности, это пространство имен содержит классы для трассировки и генерирования событий. Дополнительные сведения см. в разделе Устранение неполадок и отладка в ASP.NET.

Пространство имен System.Management.Instrumentation

Классы, необходимые для оснащения приложений средствами управления и предоставления сведений и событий управления потенциальным клиентам с помощью инструментария управления Windows (WMI). Средства наблюдения за состоянием системы ASP.NET используют WMI для доставки событий. Строго говоря, это пространство имен не является частью конфигурационного API.

Структура наследования классов конфигурации

Следующая схема иллюстрирует отношения наследования между классами пространства имен System.Web.Configuration и классами пространства имен System.Configuration. Эта схема помогает понять, какие свойства и методы доступны тому или иному объекту и как получить дальнейшую информацию.

Наследование в классах конфигурации

Структура агрегирования классов конфигурации

Следующая схема иллюстрирует отношения агрегирования между классами пространства имен System.Web.Configuration и классами пространства имен System.Configuration. Эта схема помогает понять, как одни классы создают экземпляры других классов.

Схема конфигурации API ASP.NET

Сборка специализированных средств

Может потребоваться предоставить многим администраторам возможность управлять теми или иными ресурсами, такими как веб-узлы или приложения; при этом необходимо будет ограничить действия, выполняемые этими администраторами над другими ресурсами. В такой ситуации можно разработать средства администрирования, использующие конфигурационный API ASP.NET для предоставления доступа лишь к тем параметрам конфигурации, которые необходимы каждому администратору для выполнения его работы, и отказа в доступе к остальным параметрам. Такие средства обеспечат администраторов необходимым инструментарием и в то же время помогут защитить ресурсы, устранив необходимость прямого доступа к файлам конфигурации.

Средства для работы с несколькими серверами

Когда требуется управлять многими серверами, может возникнуть необходимость развернуть на них одни и те же приложения ASP.NET и осуществлять управление этими приложениями. Например, управление веб-фермой может требовать выполнения следующих задач:

  • написание сценария, который настраивает одно и то же приложение ASP.NET на любом или всех серверах веб-фермы;

  • блокирование некоторых файлов, используемых для каждого экземпляра приложения;

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

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

Кроме того, конфигурационный API ASP.NET поддерживает пакетное выполнение на нескольких серверах.

Создание конфигурации и управление ею с использованием единого средства

Как владелец узла, вы можете использовать оснастку ASP.NET консоли управления (MMC) для создания конфигураций приложений ASP.NET на компьютере и управления этими конфигурациями. Данная оснастка позволяет использовать функциональные возможности конфигурационного API ASP.NET посредством графического пользовательского интерфейса. Оснастка ASP.NET консоли управления (MMC) реализует унифицированное представление параметров конфигурации из многих конфигурационных файлов, таких как параметры сеанса, безопасности, управления ошибками и трассировки. Эти параметры можно изменять без непосредственного редактирования XML-кода в файлах конфигурации. Дополнительные сведения см. в разделе Оснастка консоли управления Майкрософт для ASP.NET.

См. также

Задачи

Практическое руководство. Доступ к параметрам конфигурации ASP.NET программными средствами

Практическое руководство. Чтение параметров приложения из файла Web.config

Практическое руководство. Чтение строк соединения из файла Web.config

Основные понятия

Использование классов конфигурации

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

Конфигурационный интерфейс API ASP.NET