Загрузка конфигурации WCF (для сервера + клиента) из пользовательского источника (не стандартный XML)

Я пытался найти способ загрузить конфигурацию службы WCF (этот огромный BLOB данных конфигурации XML) из альтернативного источника, а не стандартного web.config/app.config.

Мы работаем в среде с ограниченным доступом, где у нас нет доступа к файловой системе сервера, и поэтому мы не можем сами вносить настройки и изменения в наши конфигурации WCF — нам всегда приходится находить ИТ-менеджеров, которые справятся с этим. Мы поместили всю нашу конфигурацию в базу данных SQL Server и урезали web.config в основном до раздела - вот и все.

Теперь нам было интересно, есть ли хороший документированный способ сделать то же самое для WCF - есть ли механизм для подключения своего рода «поставщика конфигурации»? Можем ли мы каким-то образом хранить наши записи конфигурации в таблице базы данных и передавать их службам по мере их запуска?

Я не смог найти какой-либо действительно полезной и понятной документации и примеров по этому вопросу... здесь есть желающие?!?!


person marc_s    schedule 23.11.2008    source источник
comment
Итак, вы в основном хотите иметь возможность настраивать свои конечные точки и поведение посредством редактирования конфигурации, которая будет динамически загружаться при поступлении запроса? Я предполагаю, что вы хотите иметь возможность изменять их через какой-то пользовательский интерфейс, который позволяет редактировать эту сохраненную конфигурацию?   -  person Ta01    schedule 24.11.2008
comment
Ну, даже не очень динамически - я просто хотел бы хранить всю конфигурацию WCF, которую служба использует при запуске или которую использует клиент, когда выясняет, как подключиться к службе, где-то еще, чем обычные файлы конфигурации XML по умолчанию. Такие вещи, как привязка, адрес и т. д.   -  person marc_s    schedule 14.12.2008
comment
В отличие от форумов, мы не используем слова «Спасибо» или «Любая помощь приветствуется» или подписи на Stack Overflow. См. раздел Должен ли быть "Привет", "спасибо" слоганов и приветствий удалить из постов?. ;-)   -  person John Saunders    schedule 03.11.2013


Ответы (1)


Вы можете сделать это, хотя это немного работы.

На стороне службы вам придется создать свой собственный ServiceHost и переопределить ApplyConfiguration метод.

Ознакомьтесь с эта запись в блоге

На стороне клиента вы делаете что-то подобное, но предоставляете собственный ChannelFactory и переопределите ApplyConfiguration способ есть.

person Stever B    schedule 20.12.2008
comment
Очень интересно! Большое спасибо за наводку! - person marc_s; 22.12.2008