Перехват вызовов, предназначенных для другой машины с локальной службой WCF - PullRequest
0 голосов
/ 13 апреля 2011

Я довольно новичок в WCF, так что это может быть глупым вопросом, но мне интересно, есть ли способ настроить службу WCF так, чтобы она "перехватывала" вызовы, предназначенные для другой машины. По сути, я бы хотел, чтобы вызов (через браузер) выполнялся на MachineA, например: «http://MachineB/MyService" фактически обрабатывается на MachineA (при условии, что мой сервис работает на MachineA).

Идея будет заключаться в том, что если у пользователя не установлена ​​служба, вызов «проваливается» на MachineB, где они смогут его установить. Однако после установки MachineA перехватывает все последующие вызовы и обрабатывает их.

Я могу полностью понять, как это было бы невозможно (без, скажем, взлома файла хостов машин), но я надеюсь, что, может быть, есть какая-то магия WCF, о которой я не знаю, которая могла бы включить такой сценарий?

Ответы [ 2 ]

2 голосов
/ 13 апреля 2011

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

0 голосов
/ 17 апреля 2011

Решение Sixto для маршрутизации является более элегантным, но если вы используете версию платформы, предшествующую 4.0, инспектор сообщений на стороне клиента или на стороне отправки или даже обработчик ошибок на стороне отправки может быть "растянутым" решения (они сделают JBO, но не в идеале). Посмотрите эту чрезвычайно длинную статью и эту статью , в которой говорится как об инспекторах сообщений, так и об обработчиках ошибок; это хорошая отправная точка, чтобы понять, сработают ли эти варианты для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...