WCF Passthrough - PullRequest
       14

WCF Passthrough

1 голос
/ 20 февраля 2009

У меня есть N-уровневая структура, состоящая из узлов WCF. Мне иногда нужно передавать очень большие объемы данных из оконечного узла в верхний узел, и я хотел бы избежать десериализации очень большого поля данных во время промежуточных переходов. Я не могу перейти прямо к вершине из-за нашей стратегии падения. Есть ли способ избежать десериализации моего поля? Спасибо за любую помощь

Ответы [ 3 ]

2 голосов
/ 20 февраля 2009

Может быть, вы можете что-то сделать с событием [OnDeserializing]?

См. это .

Кроме того, события сериализации описаны в " Программирование служб WCF " (2-е издание) Ювала Лоуи в главе 3, стр. 107-110.

Я не уверен, что вы можете полностью десериализовать короткое замыкание, хотя ... я никогда не пробовал.

1 голос
/ 20 февраля 2009

Я думаю, что Терри на правильном пути. Я бы посмотрел на это событие, и с помощью контракта на сообщение вы сможете пометить ту часть сообщения, которую вы просто хотите передать. Вам, вероятно, потребуется выполнить некоторые манипуляции с сообщениями (разорвать входящее сообщение, создать «настраиваемое» исходящее сообщение), но вы должны иметь возможность продолжить сообщение, не просматривая его.

Выполнить поиск WS-Addressing тоже; это может обеспечить образец для этого.

0 голосов
/ 21 февраля 2009

Интересно, будет ли ваша стратегия восстановления после отказа подходить для такого рода вещей? Вы сделаете свой первоначальный вызов промежуточному узлу, который в конечном итоге перенаправит его на конечный узел. Терминальный узел ответит информацией, необходимой для непосредственного подключения к нему исходного узла.

Таким образом, распределение нагрузки или отработка отказа могут определить, какой терминальный узел следует использовать, но после того, как это определение будет выполнено, прямое соединение может иметь место. Конечно, вы хотите ограничить продолжительность этого прямого соединения, чтобы стратегия аварийного переключения со временем изменила свое решение.

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