Azure 应用服务和 HttpContext.RequestAborted 取消令牌

Azure App Service and HttpContext.RequestAborted Cancellation Token

我有一个计算密集型的 dotnet core 3.1 应用程序,即对请求的响应可能会延迟几分钟,因此我正在监视 FIN 或 HttpContext.RequestAborted,

假设一个代码示例是

public async Task<IActionResult> Get(string request)
{
      await _process.IntensiveTaskAsync(HttpContext.RequestAborted);
      return Ok();
}

现在在许多环境中工作正常,包括 linux、IIS、nginx(代理).. 这意味着我的 "IntensiveTaskAsync" 将在 CancellationToken 上有序终止(即用户终止请求).. 但是,当代码现在从容器 (linux) 托管在 Azure Web App 中时,它不起作用。 是否需要任何配置才能正常工作,请注意当前该服务托管在 Dev SKU B1

我知道这个问题很老,但我已经为此苦苦挣扎了一段时间。根据这个 GitHub 问题,我认为这实际上是一个 Azure 基础架构问题:

https://github.com/dotnet/aspnetcore/issues/20229#issuecomment-623289191