WCF 4 RoutingService EndpointAddressMessageFilter маршрутизация на основе контракта - PullRequest
0 голосов
/ 08 июля 2011

Я смотрел видео Matt Sniders RoutingService на endpoint.tv, и его комментарий о виртуализации сервисов заставил меня задуматься.Я изменил все свои службы на использование службы обнаружения, чтобы объявить о себе, и на следующем шаге я создам хранилище служб, чтобы при объявлении служб расширение службы маршрутизатора изменило свою таблицу маршрутизации.

Идея состоит в том, чтолюбой сервис может просто подключиться к маршрутизатору и вызвать операцию с известным контрактом.Маршрутизатор будет знать, куда направить запрос действия контракта, на основе таблицы маршрутизации, которая обновляется каждый раз, когда служба обнаружения объявляет о подключении или отключении службы службой обнаружения.

У меня вопрос, как мне этого добиться.Я новичок в WCF, не говоря уже о RoutingService, поэтому, пожалуйста, потерпите меня!Буду ли я устанавливать таблицу фильтров, например (с * для подстановки любой операции, основанной на этом контракте - просто предположение)?

<filters>
  <filter name="RegisterEventFilter" filterType="Action" filterData="CalcLib.ICalcLib/*"/>
  <filter name="RegisterAttendeeFilter" filterType="Action" filterData="OrderLib.IOrder/*"/>
</filters>

Или мне нужно вместо этого использовать EndpointAddressMessageFilter?

Заранее признателен за помощь.

Крис

1 Ответ

0 голосов
/ 08 июля 2011

Я не пробовал использовать RoutingService со службой обнаружения, но если вы просто хотите перенаправить все действия (вызовы операций) на целевую службу, тогда фильтр EndpointName filterType поможет вам. Кроме того, я не верю, что Action filterType поддерживает подстановочный знак в атрибуте filterData. Вот статья MSDN, которая показывает, как настроены различные типы фильтров . Он бессвязный и длинный, потому что он охватывает большинство параметров filterType с примерами, но информация достоверна.

...