Вызов метода ПОСЛЕ того, как операция службы wcf вернула свой результат - PullRequest
8 голосов
/ 19 мая 2011

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

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

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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 19 мая 2011

Если вы хотите сделать это на сервере, посмотрите на http://blogs.msdn.com/b/carlosfigueira/archive/2011/05/17/wcf-extensibility-ioperationinvoker.aspx,, где показано, как обойти операцию (это сценарий кэширования, но он может быть адаптирован к вашей проблеме).

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

0 голосов
/ 19 мая 2011

Вы не можете сделать это со стандартной привязкой типа запрос / ответ в WCF, потому что, как вы узнали, вы не получите ответ, пока служба не завершит обработку (или не истечет время ожидания). Чтобы сделать то, что вы хотите, вам понадобится сервис, в котором вы сможете запустить длительную операцию, а затем запросить статус завершения и результаты ответа.

netMsmqBinding поддерживает этот сценарий в WCF. Все операции для этой привязки должны быть односторонними, так как вы помещаете сообщение только в очередь для обработки. Вам потребуется настроить другую конечную точку или службу с привязкой запрос / ответ для метода опроса. Хороший обзор netMsmqBinding здесь.

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