powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Динмический WCF- сервис
10 сообщений из 10, страница 1 из 1
Динмический WCF- сервис
    #39159893
talja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Есть задача, совсем нетривиальная. Если упростить, то примерно так:
разработать сервис ServiceMain, который будет вызывать WCF- сервисы других серверов. Функционал WCF- сервисов одинаков, но при этом заранее неизвестно, сколько таких сервисов может быть.
То есть вероятна ситуация, что в любое время будет добавлен еще один сервер с захостенным WCF-сервисом. При этом не должно быть необходимости править код сервиса ServiceMain, нужно просто откорректировать файл конфигурации. И ServiceMain должен работать.

То есть получаем динамический wcf-сервис, который в реале может находиться где-угодно.

Как реализовать такое?
Прошу подсказать, если это вообще возможно.
...
Рейтинг: 0 / 0
Динмический WCF- сервис
    #39159989
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственно, wcf и так размещается где угодно.

Что именно вы будете править в конфиг файле по вашей задаче?
...
Рейтинг: 0 / 0
Динмический WCF- сервис
    #39160008
talja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Winnipuh,
в моем случае проблема в том, что я заранее не знаю, где будет размещен wcf-сервис.
В процессе эксплуатации ServiceMain может появиться новый wcf-сервис, и нужно, чтобы ServiceMain мог с ним работать без добавления новых ServiceReference и правки кода.
Нужно, чтобы достаточно было указать в файле конфигурации IP к новому серверу, endpoint к службе на этом сервере.
...
Рейтинг: 0 / 0
Динмический WCF- сервис
    #39160041
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
talja, ну, смотрите сами - если сможете уложить в конфигу и вызывать из нее все 3 (A,B и C), то получится. Сами готовы такое имплементировать? Хотя мне идея не нравится.
...
Рейтинг: 0 / 0
Динмический WCF- сервис
    #39160057
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taljaWinnipuh,
в моем случае проблема в том, что я заранее не знаю, где будет размещен wcf-сервис.
В процессе эксплуатации ServiceMain может появиться новый wcf-сервис, и нужно, чтобы ServiceMain мог с ним работать без добавления новых ServiceReference и правки кода.
Нужно, чтобы достаточно было указать в файле конфигурации IP к новому серверу, endpoint к службе на этом сервере.

сделайте один раз сервис референсе, создавайте конфигурацию в приложении, а в конфиге как параметры - список имен хостов
или
меняйте в приложении адреса endpoints
...
Рейтинг: 0 / 0
Динмический WCF- сервис
    #39160076
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhtaljaWinnipuh,
в моем случае проблема в том, что я заранее не знаю, где будет размещен wcf-сервис.
В процессе эксплуатации ServiceMain может появиться новый wcf-сервис, и нужно, чтобы ServiceMain мог с ним работать без добавления новых ServiceReference и правки кода.
Нужно, чтобы достаточно было указать в файле конфигурации IP к новому серверу, endpoint к службе на этом сервере.

сделайте один раз сервис референсе, создавайте конфигурацию в приложении, а в конфиге как параметры - список имен хостов
или
меняйте в приложении адреса endpoints
Человек хочет все динамически делать, никаких сервис референсов или прокси не предполагается, видимо.
...
Рейтинг: 0 / 0
Динмический WCF- сервис
    #39162443
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
talja,

Все эти сервисы реализуют единый интерфейс ( Функционал WCF- сервисов одинаков )?
Можно динамически конфигурировать ChannelFactory (в том числе задавая удаленный адрес).
Вот первая попавшаяся ссылка в гугле про то как это делать
http://www.c-sharpcorner.com/UploadFile/ff2f08/channel-factory-in-wcf/

Это абсолютно нормальный режим работы, когда адрес удаленного сервиса может быть не известен заранее.

Конфигурируйте себе этих ChannelFactory сколько угодно, на каждый удаленный сервис. Затем в нужный момент делайте CreateChannel, работайте с ним и закрывайте. Или держите канал открытым все время - если вам это нужно.

Вы можете в своем ServiceMain сделать метод "AddAdress"/"DeleteAdress" куда пулять адреса, которые нужно динамически добавить/удалить из обработки.
...
Рейтинг: 0 / 0
Динмический WCF- сервис
    #39162756
talja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ProBiotek, спасибо.
Получила еще наводку на Discovery Service: http://geekswithblogs.net/shaunxu/archive/2012/07/06/service-discovery-in-wcf-4.0-ndash-part-1.aspx


Отпишусь по итогу, какой вариант был выбран в качестве рабочего
...
Рейтинг: 0 / 0
Динмический WCF- сервис
    #39162866
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taljaПолучила еще наводку на Discovery Service:
В принципе, вам дали абсолютно верную наводку.

Ну а так, я могу навскидку назвать 3 способа автоматически публиковать/обнаруживать сервисы:
1) Discovery Service. Поднимаете 1 Discovery сервис, на котором автоматически публикуются все остальные сервисы.
2) Routing Service. Единая точка входа, которая затем перенаправляет запросы на остальные сервисы (но здесь нужно прописывать роутинги на новые сервисы)
3) Вычитывание из метаданных. Тут будет много ручной работы, но вцелом идея в том, что в WSDL можно публиковать множество endpoints, в том числе и на абсолютно разных машинах. Поэтому нужно будет написать собственную генерацию WSDL, которая будет лежать на отдельной машине, и в которой будут перечисляться все машины, которые предлагают такие сервисы.
...
Рейтинг: 0 / 0
Динмический WCF- сервис
    #39176480
L.Otujktd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно в ServiceMain сделать методы для регистрации/дерегистрации дочерних сервисов параметризуемых байндингом и типом реализуемого сервисом интерфейса но в таком случае асе равно придется как-то генерить информацию для клиентского кода.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Динмический WCF- сервис
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]