2013-09-30 2 views
3

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

Я пробовал разные подходы:

  1. сервер является синхронным, клиент делает синхронизацию вызова с использованием другого процесса, остаться в живых
  2. сервера является синхронным, клиент делает вызов асинхронным, используя тот же самый процесс которые могут быть закрыты
  3. сервер асинхронной, клиент делает вызов с использованием синхронизации один и тот же процесс

Если клиент закрывает связь с Serv er, сервер убивает выполнение, поэтому он не выполняет задачу?

Каков наилучший способ избежать этого сценария?

Хорошо, что выполнить код на сервере с помощью класса Task?

+0

Избегайте, какой сценарий? Вы хотите, чтобы сервер прекратил выполнение, если клиент отключился или нет? –

+0

Я хочу продолжить задачу в любом случае –

ответ

-1

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

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

0

Решение может использовать свойство IsOneWay в OperationContractAttribute.

Смежные вопросы