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