Как создать асинхронный сервис WCF - PullRequest
2 голосов
/ 21 сентября 2011

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

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

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

Другой вариант - создать какой-то запрос (например, создать запись в хранилище данных какого-либо типа).) и вернуться.Затем другой процесс (например, служба Windows и т. Д.) Может получить запрос и выполнить обработку.

1 голос
/ 21 сентября 2011

Любая служба WCF может быть сделана асинхронной -

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

Это автоматически сделает службу call асинхронной.Служба вернется после завершения, но клиент получит два метода - BeginXXX и EndXXX, а также XXXAsync + событие XXXCompleted, любое из которых допускает полностью асинхронную операцию.

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