Я пытался найти лучший способ обеспечить синхронизацию определенных файлов конфигурации XML между несколькими серверами в веб-ферме. Меня не обязательно беспокоит Web.Config, так же как и некоторые другие файлы конфигурации, присутствующие в приложении.
Например, мы храним политики кэширования во внешнем файле XML, где у него есть собственная схема, и вскоре у нас будет собственный инструмент для поддержки значений. После применения изменений их следует перенести по всей ферме.
Некоторые сценарии, которые я рассмотрел до сих пор:
- RoboCopy, репликация или эквивалент. Это требует, чтобы работа выполнялась только на определенном узле фермы. (Нажмите на приложение.)
- Сервер конфигурации. Все внешние конфигурации и их инструменты хранятся в физическом экземпляре IIS. Приложение будет извлекать эти файлы конфигурации при запуске приложения и периодически запрашивать изменения. (Приложение опросы.)
- Сборка команды. Мы могли бы разместить инструменты самостоятельно и настроить процесс пост-сборки для развертывания файлов. (Приложение опросы.)
- Хранение базы данных. Приложения могут читать и опрашивать базу данных для конфигурации. (Приложения опроса.)
У всех этих сценариев есть свои плюсы и минусы. Я не уверен, что является лучшим решением, хотя я думаю, что опрос приложений на предмет изменений может быть самым чистым подходом. Тем не менее, вопрос в том, каким путем вы бы лучше всего сочли это выполненным?