如何在Web请求上传输CancellationToken

我正在做一些关于通过WebAPI取消异步请求的研究,

最近我发现最新版本的WebApi(不是.NET-Core)支持取消令牌。 作为测试我写了这段代码。

[HttpGet] [Route("LongRequest")] public async Task VeryLongRequest(string Key, CancellationToken token) { for (int i = 0; i < 5; ++i) { if (false == token.IsCancellationRequested) { Thread.Sleep(5000); } else { Trace.WriteLine("Cancelled"); } } return "Complete"; } 

当用户关闭窗口/刷新/或导航到新页面(不在SPA上)时,此代码有效,并且更新取消令牌。

因为HTTP请求是无状态的,取消映射如何回到请求?

我怎样才能从我的客户手动调用取消?