Динамическое подключение клиента к WCF-службе.
От: Аноним  
Дата: 27.10.10 15:05
Оценка:
Всем добрый вечер!

Есть следующая задача:

Есть приложение. Есть WCF-сервис.
WCF-сервис функционирует нормально. Через WCF Test Client все методы нормально вызываются и возвращают ожидаемые данные.

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

Как добавлять WCF-службу в проект, все понятно и легко. Но вот как динамически во время работы программы подключиться к WCF-службе, в инете инфы так и не нашел. =(

Прошу помощи!
Буду благодарен за любую информацию!
wcf .net
Re: Динамическое подключение клиента к WCF-службе.
От: Jolly Roger  
Дата: 27.10.10 15:29
Оценка:
Здравствуйте, Аноним, Вы писали:

Например,
var binding = new NetNamedPipeBinding(...); // or any
var channelFactory = new ChannelFactory<IServiceIntf>(binding,
        new EndpointAddress("net.pipe://localhost/SomeService");
IServiceIntf channel = channelFactory.CreateChannel();
channel.SomeMethod(...);
"Нормальные герои всегда идут в обход!"
Re[2]: Динамическое подключение клиента к WCF-службе.
От: Аноним  
Дата: 27.10.10 15:40
Оценка:
А как сделать так, чтобы с нуля произвести подключение? Чтобы можно было увеличивать количество подключенных WCF-сервисов.
Re[3]: Динамическое подключение клиента к WCF-службе.
От: dorofeevilya Россия  
Дата: 27.10.10 16:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А как сделать так, чтобы с нуля произвести подключение? Чтобы можно было увеличивать количество подключенных WCF-сервисов.

С нуля, это как?
Re[3]: Динамическое подключение клиента к WCF-службе.
От: Jolly Roger  
Дата: 27.10.10 16:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А как сделать так, чтобы с нуля произвести подключение? Чтобы можно было увеличивать количество подключенных WCF-сервисов.


А выше чего, с единицы что-ли? Или с десятки? Каждый сервис поддерживает определённый биндинг и находится по определённому адресу (EndpointAddress) Создавайте и подключайте хоть сотню. Интерфейс-то у Вас должен быть, иначе как Вы его использовать собираетесь? А если нет, так смотрите Metadata Exchange. Но, во-первых, сервис в общем случае не обязан mex поддерживать, а во-вторых, ИМХО, это занятие для мазохистов, только для написания инструментария имеет смысл.
"Нормальные герои всегда идут в обход!"
Re[4]: Динамическое подключение клиента к WCF-службе.
От: Аноним  
Дата: 27.10.10 20:34
Оценка:
Здравствуйте, dorofeevilya, Вы писали:

D>Здравствуйте, Аноним, Вы писали:


А>>А как сделать так, чтобы с нуля произвести подключение? Чтобы можно было увеличивать количество подключенных WCF-сервисов.

D>С нуля, это как?

Ну без всяких инструментов динамически произвести подключение во время работы программы на заранее не известный адрес, зная только что он реализует имеющийся у меня интерфейс.
Идея такая.
Re[4]: Динамическое подключение клиента к WCF-службе.
От: Аноним  
Дата: 27.10.10 20:39
Оценка:
Здравствуйте, Jolly Roger, Вы писали:

JR>Здравствуйте, Аноним, Вы писали:


А>>А как сделать так, чтобы с нуля произвести подключение? Чтобы можно было увеличивать количество подключенных WCF-сервисов.


JR>А выше чего, с единицы что-ли? Или с десятки? Каждый сервис поддерживает определённый биндинг и находится по определённому адресу (EndpointAddress) Создавайте и подключайте хоть сотню. Интерфейс-то у Вас должен быть, иначе как Вы его использовать собираетесь? А если нет, так смотрите Metadata Exchange. Но, во-первых, сервис в общем случае не обязан mex поддерживать, а во-вторых, ИМХО, это занятие для мазохистов, только для написания инструментария имеет смысл.


Вот я и пытаюсь понять как мне не используя инструментарий студии для генерации клиента, во время работы программы инициализировать клиент, задать ему параметры, адрес WCF-службы начать его использовать. Интерфейс, который реализует эта служба у меня есть.

Вот этого я пытаюсь добиться, но пока безуспешно =(
Re[4]: Динамическое подключение клиента к WCF-службе.
От: Svat_P Россия http://svyatoslavpankratov.blogspot.com/
Дата: 27.10.10 20:47
Оценка:
Здравствуйте, Jolly Roger, Вы писали:

JR>Здравствуйте, Аноним, Вы писали:


А>>А как сделать так, чтобы с нуля произвести подключение? Чтобы можно было увеличивать количество подключенных WCF-сервисов.


JR>А выше чего, с единицы что-ли? Или с десятки? Каждый сервис поддерживает определённый биндинг и находится по определённому адресу (EndpointAddress) Создавайте и подключайте хоть сотню. Интерфейс-то у Вас должен быть, иначе как Вы его использовать собираетесь? А если нет, так смотрите Metadata Exchange. Но, во-первых, сервис в общем случае не обязан mex поддерживать, а во-вторых, ИМХО, это занятие для мазохистов, только для написания инструментария имеет смысл.


Инструментарий как раз и пишу =)
Re: Динамическое подключение клиента к WCF-службе.
От: Svat_P Россия http://svyatoslavpankratov.blogspot.com/
Дата: 27.10.10 21:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Всем добрый вечер!


А>Есть следующая задача:


А>Есть приложение. Есть WCF-сервис.

А>WCF-сервис функционирует нормально. Через WCF Test Client все методы нормально вызываются и возвращают ожидаемые данные.

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


А>Как добавлять WCF-службу в проект, все понятно и легко. Но вот как динамически во время работы программы подключиться к WCF-службе, в инете инфы так и не нашел. =(


А>Прошу помощи!

А>Буду благодарен за любую информацию!

Пример решения данной задачи можно посмотреть здесь: http://social.msdn.microsoft.com/Forums/ru-RU/fordesktopru/thread/a8cae2a7-95b9-4ca2-ad8e-d81c75d12cf1
Re[2]: Динамическое подключение клиента к WCF-службе.
От: Svat_P Россия http://svyatoslavpankratov.blogspot.com/
Дата: 27.10.10 21:35
Оценка:
Всем большое спасибо за помощь! =)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.