我有一个.NET Core 3.1应用程序,其计算密集型,即对请求的响应可能会延迟几分钟。因此,我正在监视FIN或HttpContext.RequestAborted。举个例子,代码如下:
public async Task<IActionResult> Get(string request)
{
await _process.IntensiveTaskAsync(HttpContext.RequestAborted);
return Ok();
}
在许多环境中,包括Linux、IIS、Nginx(代理),这个方法都能很好地工作。这意味着当 CancellationToken 终止请求(即用户终止请求)时,“IntensiveTaskAsync”会被有序地终止。 然而,当代码现在从容器(Linux)托管在Azure Web App上时,它不起作用。 是否需要进行任何配置才能使其工作?请注意,当前服务托管在Dev SKU B1中。