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
我有一个计算密集型的 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