Можно ли «ретранслировать» службу WCF с другого сервера?

У меня есть служба WCF на сервере с одной стороны брандмауэра. Мне нужно получить доступ к службе со многих рабочих станций по другую сторону брандмауэра. Сетевые специалисты настаивают на том, чтобы все дыры в брандмауэре были взаимно однозначными, поэтому сейчас мне придется настраивать каждую рабочую станцию ​​одну за другой. Могут быть нагрузки, и это будет утомительно и подвержено ошибкам.

Можно ли настроить сервер WCF на этой стороне брандмауэра, который может каким-то умным способом просто действовать как прокси для «настоящей» службы WCF на другой стороне брандмауэра? Если да, не могли бы вы указать мне на какой-нибудь справочный материал?


person serialhobbyist    schedule 31.07.2009    source источник
comment
Вы готовы реализовать прокси вручную или ищете какое-то решение для генерации кода?   -  person Steven Sudit    schedule 31.07.2009
comment
Стивен, я бы предпочел написать ‹wcf proxy = server1 service = myservice› и WCF сделал все за меня, но если я смогу / должен сделать это сам, я сделаю это.   -  person serialhobbyist    schedule 31.07.2009


Ответы (2)


У меня есть несколько предложений, может быть, одно подойдет вам:

  • Разместите службу WCF за пределами брандмауэра. Если службе WCF необходимо взаимодействовать с базой данных, откройте порт базы данных для IP-адреса компьютера, на котором запущена служба WCF.
  • Запрограммируйте или используйте генерацию кода для создания службы WCF, которая является просто проходным слоем
  • В вашем брандмауэре может быть некоторая функция, позволяющая опубликовать конечную точку
person Shiraz Bhaiji    schedule 31.07.2009
comment
1. Не могу - сервер застрял на месте 2. где взять генерацию кода? 3. не думал об этом - это прибор - не уверен, что они делают такие вещи - person serialhobbyist; 31.07.2009
comment
Посмотрите это видео dnrtv.com/default.aspx?showNum=103 Он показывает, как вручную реализовать wcf-прокси. Если вы используете это, вы можете обойтись написанием только одной строки кода для каждого метода, который есть в вашей службе WCF. - person Shiraz Bhaiji; 31.07.2009
comment
Спасибо, посмотрю видео - person serialhobbyist; 06.08.2009

Для «облачного» вычислительного пространства Windows Azure разрабатывается новая концепция службы WCF Relay. Это позволит вам довольно легко создать свой сценарий - просто разместите некоторые части вашего сервиса в облаке.

Смотрите эти ссылки для получения дополнительной информации:

или выполните поиск в Google по запросу "WCF Relay Service". Также существует ряд новых привязок специально для этих сценариев WCF.

Надеюсь это поможет.

Марк

ОБНОВЛЕНИЕ:
WCF v4, который будет выпущен вместе с .NET 4.0 в конце этого года (2009 г.), будет включать класс RoutingService, который можно использовать в подобных сценариях.

Дополнительную информацию о службе маршрутизации WCF4 см. Здесь:

person marc_s    schedule 31.07.2009
comment
Я почти уверен, что Azure не вариант для европейских пользователей: правила и условия не регулируют, где будут храниться данные, а европейский закон о защите данных не допускает этого. Во всяком случае, что-то в этом роде. - person serialhobbyist; 01.08.2009
comment
Я согласен с вашими опасениями, но MS четко заявила, что инфраструктура Azure будет развернута по всему миру, и вы сможете конкретно указать, есть ли у вас какие-либо предпочтения / требования в отношении размещения данных и / или служб. - person marc_s; 02.08.2009