具有取消令牌的自定义AspCore中间件

Boa*_*ler 8 asp.net-core-mvc asp.net-core asp.net-core-1.0 asp.net-core-middleware

当我有一个自定义的asp核心中间件时,我想检索请求的取消令牌

我试着将它添加到调用的签名中,如下所示:

 public async Task Invoke(HttpContext context,CancellationToken token)
Run Code Online (Sandbox Code Playgroud)

但作为儿子,我添加它不再被称为.

我究竟做错了什么?

Joe*_*tte 14

我认为这个想法是不能取消中间件的调用,如果你调用一些接受取消令牌的异步任务,那么你可以创建一个并将其传递给你在里面调用的内容.

如果请求被中止,常见的情况是取消任务,因此您可以像这样创建令牌:

CancellationToken CancellationToken => context?.RequestAborted ?? CancellationToken.None;
Run Code Online (Sandbox Code Playgroud)

然后调用一些异步服务,如获取数据或查询数据库,如果请求被中止,则应该发生取消请求