Настройка приложений с использованием файлов конфигурации
платформа .NET Framework позволяет разработчикам и администраторам контролировать и гибко управлять тем, как приложения выполняются с помощью файлов конфигурации. Файлы конфигурации имеют формат XML, и при необходимости их можно изменять. Администратор может контролировать, к каким из защищенных ресурсов может осуществлять доступ приложение, какие оно будет использовать версии сборок и где расположены удаленные объекты и приложения. Разработчики могут задавать параметры в файлах конфигурации, устраняя необходимость в перекомпиляции приложения при каждом изменении той или иной установки. В этом разделе рассказывается, какие параметры могут быть настроены и для чего может потребоваться настройка приложения.
Примечание
С помощью классов из пространства имен System.Configuration управляемый код может считывать установки из конфигурационных файлов, но не записывать их в эти файлы.
В этой статье описывается синтаксис файлов конфигурации и приводятся сведения о трех типах файлов конфигурации: компьютер, приложение и безопасность.
Формат файлов конфигурации
Файлы конфигурации состоят из элементов, которые являются логическими структурами данных, задающими сведения о конфигурации. Начало и конец каждого элемента в файле конфигурации отмечены специальными тегами. Например, <runtime>
элемент состоит из дочерних <runtime>
элементов</runtime>
. Пустой элемент будет записан как <runtime/>
или <runtime></runtime>
.
Как и во всех XML-файлах, в файлах конфигурации учитывается регистр.
Параметры конфигурации задаются с помощью предварительно определенных атрибутов (пар имя-значение) в открывающем теге элемента. В следующем примере заданы два атрибута (version
и href
) элемента <codeBase>
, определяющие для среды выполнения расположение сборок (дополнительные сведения см. в разделе Указание расположения сборки).
<codeBase version="2.0.0.0"
href="http://www.litwareinc.com/myAssembly.dll"/>
Файлы конфигурации компьютера
Файл конфигурации компьютера Machine.configсодержит параметры, которые применяются ко всему компьютеру. Этот файл находится в каталоге %путь установки среды выполнения%\Config. Machine.config содержит параметры конфигурации для привязки сборки на уровне компьютера, встроенных каналов удаленного взаимодействия и ASP.NET.
Система конфигурации сначала ищет файл конфигурации компьютера для <элемента appSettings> и других разделов конфигурации, которые разработчик может определить. Затем поиск выполняется в файле конфигурации приложения. Для облегчения управления файлом конфигурации компьютера рекомендуется переместить эти параметры в файл конфигурации приложения. Однако размещение параметров в файле конфигурации компьютера упрощает управление системой. Например, при наличии компонентов сторонних производителей, используемых сервером и клиентами, рекомендуется разместить параметры этих компонентов в одном файле. В этом случае следует задавать параметры в файле конфигурации компьютера, чтобы не дублировать параметры в разных файлах.
Примечание
При развертывании приложения с помощью команды XCOPY файл конфигурации компьютера не копируется.
Дополнительные сведения об использовании файла конфигурации компьютера средой CLR для привязки сборок см. в разделе Обнаружение сборок в среде выполнения.
Файлы конфигурации приложения
В файле конфигурации приложения находятся параметры приложения. В этом файле содержатся параметры конфигурации, считываемые средой CLR (например, политика привязки сборок, удаленные объекты и т. д.) и приложением.
Имя и расположение файла конфигурации приложения зависят от места размещения приложения, которым может быть одно из указанных ниже.
Приложение, размещенное в исполняемом файле.
Эти приложения имеют два файла конфигурации: исходный файл конфигурации, который изменяется разработчиком во время разработки, и выходной файл, распространяемый вместе с приложением.
При разработке в Visual Studio разместите исходный файл конфигурации приложения в каталоге проекта и установите для его свойства Копировать в выходной каталог значение Всегда копировать или Копировать, если новее. По умолчанию имя файла конфигурации — App.config.
Чтобы создать выходной файл конфигурации, развернутый с помощью приложения, Visual Studio копирует исходный файл конфигурации в каталог, в который размещается скомпилированная сборка. Этот файл называется <yourappname>.exe.config. Например, приложение с именем myApp.exe будет иметь выходной файл конфигурации с именемmyApp.exe.config.
В некоторых случаях Visual Studio может изменить выходной файл конфигурации; дополнительные сведения см. в разделе Перенаправление версий сборки на уровне приложения статьи Перенаправление версий сборки.
Приложение, размещенное в ASP.NET.
Дополнительные сведения о файлах конфигурации ASP.NET см. в Параметры ASP.NET конфигурации.
Приложение, размещенное в Internet Explorer.
Если приложение, размещенное в Internet Explorer, имеет файл конфигурации, расположение этого файла указывается в теге со следующим синтаксисом
<link>
:<link rel="*ConfigurationFileName*" href="*location*">
В этом теге
location
— это URL-адрес файла конфигурации. Таким образом задается базовая папка приложения. Файл конфигурации должен находиться на том же веб-сайте, что и приложение.
Файлы конфигурации безопасности
В файлах конфигурации безопасности содержатся сведения об иерархии групп кода и наборах разрешений, связанных с уровнем политики. Для изменения политики безопасности настоятельно рекомендуется использовать средство политики безопасности доступа кода (Caspol.exe), что гарантирует целостность файлов конфигурации безопасности.
Примечание
Начиная с платформа .NET Framework 4 файлы конфигурации безопасности присутствуют только в том случае, если политика безопасности была изменена.
Ниже приведено расположение файлов конфигурации безопасности.
Файл конфигурации политики предприятия: %путь-установки-среды-выполнения%\Config\Enterprisesec.config
Файл конфигурации политики компьютера: %путь-установки-среды-выполнения%\Config\Security.config
Файл конфигурации политики пользователя: %USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config