Отмените долгосрочную задачу через WCF от клиента
У меня есть служба WCF для PerCall
Я хотел бы знать, как я могу отправить стартовый вызов от клиента, чтобы начать длительный процесс, и отправить команду отмены, чтобы отменить его
Мой сервис WCF выглядит примерно так
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class Service1 : IService1
{
CancellationTokenSource cancelToken = new CancellationTokenSource();
public void Start()
{
var compute = Task.Factory.StartNew(StartLongRunningTask, cancelToken.Token);
}
public void Stop()
{
cancelToken.Cancel();
}
private void StartLongRunningTask()
{
//process here
}
}
Я предполагаю, что проблема здесь в том, что каждый раз, когда вызов поступает на сервер, он обрабатывается как новый запрос.
Итак, как сделать запуск и отмена долгосрочной задачи в WCF?
РЕДАКТИРОВАТЬ: я хостинг как служба Windows