У нас есть приложение на основе IIS с различными веб-приложениями, некоторыми сторонними компонентами и несколькими службами.
Сервер1
- AppPool1
- App1
- AppPool2
- Third party app
- AppPool1
Сервер2
- AppPool3
- Third party app 2
- Приложение2
- Служба Windows
- Сохраненная процедура CLR
- AppPool3
Цель состоит в том, чтобы поместить все параметры, относящиеся к среде (такие как строки подключения, URL-адреса и т. д.), в один файл конфигурации для каждой среды (разработки, тестирования, интеграции, производства). Материал, относящийся к приложению, должен основываться на этом «глобальном» файле настроек и отдельных файлах настроек для каждого приложения.
Мне приходится использовать встроенный статический класс System.Configuration.ConfigurationManager
, потому что от него зависят некоторые сторонние инструменты.
Я знаю следующие возможные подходы с использованием System.Configuration.ConfigurationManager
:
- Отдельные файлы (текущий, избыточный подход)
- Machine.config (слишком глобальный)
- Иерархическая конфигурация в IIS (не влияет на службу и процедуру CLR)
Изменить. Элемент linkedConfiguration
влияет только на политики привязки загрузчика.
Есть ли другие методы? Какой из них лучше?
ConfigurationManager
, который не поддерживает конфиги, предоставляемые БД или сервисами. Я должен использовать этот встроенный стандарт, потому что от него зависят сторонние инструменты. 06.10.2011