Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 带有取消令牌的自定义AspCore中间件_Asp.net Core_Asp.net Core Mvc_Asp.net Core 1.0_Asp.net Core Middleware - Fatal编程技术网

Asp.net core 带有取消令牌的自定义AspCore中间件

Asp.net core 带有取消令牌的自定义AspCore中间件,asp.net-core,asp.net-core-mvc,asp.net-core-1.0,asp.net-core-middleware,Asp.net Core,Asp.net Core Mvc,Asp.net Core 1.0,Asp.net Core Middleware,当我有一个自定义asp核心中间件时,我想检索请求的取消令牌 我试图将其添加到调用的签名中,如下所示: public async Task Invoke(HttpContext context,CancellationToken token) CancellationToken CancellationToken => context?.RequestAborted ?? CancellationToken.None; 但正如我所说,它不再被称为“儿子” 我做错了什么?我认为我们的想法

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

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

 public async Task Invoke(HttpContext context,CancellationToken token)
CancellationToken CancellationToken => context?.RequestAborted ?? CancellationToken.None;
但正如我所说,它不再被称为“儿子”


我做错了什么?

我认为我们的想法是不能从中间件内部取消对中间件的调用。如果您调用某个接受取消令牌的异步任务,那么您可以创建一个并将其传递给从中间件内部调用的任务

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

 public async Task Invoke(HttpContext context,CancellationToken token)
CancellationToken CancellationToken => context?.RequestAborted ?? CancellationToken.None;
然后调用一些异步服务,如获取数据或查询数据库,如果请求被中止,则应该发生取消请求