Маршрутизация WCF4 с надежными сеансами и обратными вызовами - PullRequest
1 голос
/ 16 января 2011

Я начну с объяснения того, что я пытаюсь сделать, и условий / обстоятельств.

Я работаю с уже существующей службой WCF (размещенной в качестве службы Windows), которую я реализовал с использованием .NET 4. Служба использует net.tcp и надежные сеансы, а также обратные вызовы клиентского приложения. Служба WCF и клиентское приложение работают в одном сетевом домене (назовем его Domain_A) и работают правильно.

Существующий:

(Client [Domain_A]:) ---[request]--> (WCF Svc [Domain_A])  
(Client [Domain_A]:)<--[callback]--- (WCF Svc [Domain_A])

Новая функция, которую я пытаюсь реализовать, - это служба маршрутизации (через WCF 4). Там будет идентичная копия службы WCF, работающей на Domain_A, которая также будет работать на Domain_B. Необходимые порты для конечных точек net.tcp и mex открыты между двумя компьютерами в каждом домене, и я могу успешно получить доступ к метаданным каждой службы из противоположного домена.

В чем я не уверен, так это в том, какой маршрут (архитектурно) я должен выбрать в отношении маршрутизации запросов на обслуживание. На некоторые запросы, сделанные клиентом, может отвечать только служба в Domain_A, а на другие может отвечать только служба в Domain_B. Служба назначения определяется (или может быть) определена параметром, который передается (от клиента) при каждом вызове службы. Кроме того, клиентское приложение будет запускаться только из Domain_A.

Желаемая функциональность:

(Client [Domain_A]:) ---[request]-->(Routing Svc [Domain_A]) ---[request]-->( (WCF Svc [Domain_A]) OR (WCF Svc [Domain_B]) )  
(Client [Domain_A]:) <--[callback]--- (Routing Svc [Domain_A])<--[callback]--- ( (WCF Svc [Domain_A]) OR (WCF Svc [Domain_B]) )

Мой первый вопрос: Каков наилучший маршрут для реализации «требуемой функциональности», описанной выше, в отношении маршрутизации (стратегия фильтрации, тип конечной точки / контракта и т. Д.)? Я новичок в службе маршрутизации и не смог найти четкого / краткого ответа или примера, соответствующего моим требованиям.

Второй вопрос: может ли кто-нибудь указать мне на пример службы маршрутизации WCF4, которая использует надежные сеансы и обратные вызовы? Кажется, я не могу найти ничего, кроме краткого упоминания IDuplexSessionRouter. Если конечной точкой IDuplexSessionRouter является путь, я не смог найти пример, который реализует обратные вызовы.

Заранее спасибо за любую помощь или информацию. Пожалуйста, дайте мне знать, если мне нужно уточнить что-либо выше.

1 Ответ

0 голосов
/ 23 января 2011

Проверьте этот Пример Microsoft для динамической маршрутизации (можно найти в этой ссылке SkyDrive , под WCF4WhatsNew.rar \ WCF4WhatsNew \ 03_DynamicRoutingRules \).

Примерперенаправлять на альтернативный сервис каждые 5 секунд.Измените пример на нужный алгоритм маршрутизации.


PS : Вопрос немного tl; dr .Я предлагаю вам быть более конкретным и использовать форматирование текста , чтобы подчеркнуть важные части.В противном случае вы получите гораздо больше шалфей .

...