Как вы настраиваете клиента WCF на производстве? - PullRequest
5 голосов
/ 13 сентября 2011

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

WCF мощен тем, что инфраструктура позволяет конфигурировать через файл app.config, так что вы можете настраивать различные параметрыбез перекомпиляции кода.

При установке клиента WCF как легко настроить клиент так, чтобы он указывал на нужный сервер? Это, пожалуй, самая распространенная вещь, о которой я могу подуматьнастроить после установки.Для некоторого контекста предположим, что я поставляю продукт, который имеет серверный компонент и клиентский компонент.Клиенты могут установить как где угодно.Хотя XML-файл является мощным средством настройки после разработки, он совсем не удобен для пользователя.Учитывая, что в файле конфигурации может быть несколько десятков конечных точек, должен ли администратор или конечный пользователь вручную изменять их все?Я знаю, что могу делать все программно, но затем я, по сути, заново внедряю всю готовую сантехнику.

Выше вопрос более обобщенный: как я могу упростить настройку WCF?через какой-то базовый пользовательский интерфейс без повторной реализации того, что предусмотрено платформой?

Ответы [ 3 ]

3 голосов
/ 13 сентября 2011

Если вы хотите удобную установку, вы будете использовать installer , где вы просто устанавливаете некоторые значения конфигурации. Проверьте либо проект установщика, предоставляемый как часть Visual Studio, либо более мощный (и гораздо более сложный) WiX . Если у вас нет установщика, вы уже выбрали, что пользователи должны все настраивать вручную.

Если ваша единственная проблема - это адрес служб, и вы планируете развертывать службы и клиенты в одной локальной сети, вы также можете добавить WS-Discovery ( доступно в WCF 4 ), где клиенты могут найти службу на сеть.

1 голос
/ 13 сентября 2011

Если вы хотите иметь / сделать приятный пользовательский интерфейс для редактирования этих настроек, пользовательский ввод из этого пользовательского интерфейса должен быть где-то сохранен, и вам придется использовать его при создании сервисных вызовов на клиентах или при настройке вашего хостинга. услуги на сервере. Лично я храню в базе данных и буду использовать их для настройки конечных точек WCF на рутинной основе с использованием закодированного подхода.

это также имеет некоторые преимущества: все резервное копирование выполняется с помощью резервного копирования базы данных, удаленного подключения и проверки, нет риска перезаписывать файлы при обновлениях и т. Д.

Если в вашей настройке / приложении нет базы данных, то файлы конфигурации также в порядке и, вероятно, единственный способ, я бы в любом случае ничего не сохранил в реестре.

0 голосов
/ 13 сентября 2011

Вы можете использовать инфраструктуру настроек для хранения адреса конечной точки.Вы можете легко читать и сохранять настройки, и они будут храниться в папке %APPDATA%, поэтому вам не нужно беспокоиться о разрешениях.Вам понадобится небольшой пользовательский интерфейс конфигурации, где пользователь может ввести имя сервера.Проверьте эту конфигурацию, добавив простую службу Hello на свой сервер, и попытайтесь подключиться к этой службе в этом пользовательском интерфейсе.Таким образом, вы можете дать пользователю немедленную обратную связь, если адрес сервера правильный.

Другой вариант - реализовать протокол обнаружения.Смежный вопрос здесь .

...