Служба WCF - асинхронная операция или обмен сообщениями в очереди - PullRequest
0 голосов
/ 02 марта 2011

У меня есть служба WCF, размещенная как служба Windows, и большинство ее методов в настоящее время определены как:

[OperationContract(IsOneWay = true)] 

Но теперь мне нужно отправить ответ обратно в вызывающее веб-приложение для этих методов службы.

Теперь, поскольку методы обслуживания немного тяжелы (к вашему сведению, они представляют собой методы отчетности, которые должны выполнять слияние почты для количества записей), я думаю либо поставить их в очередь, либо обрабатывать асинхронно, поэтому, по существу, когдазапрос отправляется в службу, и он должен сохранить запрос в базе данных / очереди, возвращая Request-Id вызывающему веб-приложению.

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

Для достижения вышесказанного, кто-нибудь может подсказать, какие изменения мне нужно внести в мою службу WCF (которая в настоящее время имеет все односторонние операции)?

Также, пожалуйста, сообщите мне, нужно ли мне переходить на асинхронную работу или в очередь сообщений?

Спасибо!

1 Ответ

0 голосов
/ 02 марта 2011

Конечно, запустить Async просто: удалите OneWay в рассматриваемом OperationContract и заново создайте свои методы Service With Async. Есть причина, по которой Silverlight заставляет вас использовать асинхронные операции. Они заставляют вас переосмыслить свой интерфейс.

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