Использование .NET ConfigurationManager для чтения настроек из строки вместо файла app.config - PullRequest
2 голосов
/ 20 марта 2012

Мы запускаем несколько экземпляров нашего сервиса (реализованного в виде файла .exe) на разных компьютерах в нашем центре обработки данных.Тем не менее, мы хотели бы сохранить параметры конфигурации для этого файла .exe в центральном расположении (в отличие от файла .exe.config для каждой машины).

Для этого мы планируем переместить содержимое файлов .exe.config в атрибут в центральном хранилище (Active Directory или SQL) и сделать так, чтобы исполняемые файлы .exe на всех компьютерах читались из этого хранилища.,

Я хотел бы повторно использовать все существующие классы, используемые для чтения / записи информации о конфигурации (используя ConfigurationManager, ConfigurationProperty и т. Д., В основном используя всю инфраструктуру конфигурации .NET) - однако вместо загрузки его из .exe.файл конфигурации (который он делает по умолчанию - я хочу, чтобы он загружал его из строкового значения блоба XML, который я получу из этого центрального хранилища.

Я пытался найти способы сделать это с помощью ConfigurationManagerAPI, но не смог найти ничего, что могло бы загрузить раздел конфигурации из строки. Любые указатели?

Ответы [ 2 ]

0 голосов
/ 20 марта 2012

Хотя я сомневаюсь, что это то, для чего это было предназначено, мы сделали это в нашем проекте, используя ProtectedConfigurationProvider .По сути, этот класс должен позволять вам шифровать ваш файл конфигурации, но у нас просто есть метод Decrypt, который подключается к нашей базе данных и возвращает информацию о конфигурации.См. this для заметок по реализации.Это было немного странно, но мы не могли найти другого пути, не переписав полностью всю логику разбора конфигурации.

0 голосов
/ 20 марта 2012

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

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

...