Уведомление о ходе выполнения в WCF длительно выполняющихся процессов - Как?

Мне нужно разработать и реализовать способ работы с длительными процессами в приложении клиент / сервер. Типичный длительный процесс может занять 2-3 минуты. Тем временем мне также нужно сообщать о прогрессе в пользовательский интерфейс и поддерживать отзывчивость пользовательского интерфейса.

Имея это в виду, я подумал о нескольких решениях:

  • Один асинхронный запрос для запуска процесса, который запускает процесс на стороне сервера и возвращает назначенный LRPID (идентификатор длительного выполнения) , затем периодически опрашивает клиента, используя этот LRPID. ( Pro : проста в развертывании, нет проблем с межсетевым экраном Con : неэлегантно, потребляет много ресурсов и т. Д.)

  • Используйте дуплексную привязку (например, NetTcpBinding) и инициируйте обратные вызовы с сервера по мере продвижения ( Pro : элегантный, эффективный, Con : кошмар развертывания)

  • [Ваше предложение ???]

Что бы вы сказали по этому поводу?

8
задан Andrei Rînea 13 January 2011 в 17:33
поделиться