Я использую C# метод HttpClient.GetAsync()
, чтобы сделать запрос API от URL-адреса конечной точки, API возвращает строку JSON, а затем я получаю результат, используя метод HttpContent.ReadAsStringAsync()
. Работает успешно. Но когда я нажимаю CTRL+C
в dotnet run
запущенном процессе, неожиданно он выдает Unhandled exception. System.OperationCanceledException: The operation was canceled.
, есть ли способ избавиться от этого?
Мой полностью контролируемый метод:
[HttpGet]
public async Task<IActionResult> Index()
{
var result = await _httpClient.GetAsync("projects/7/issues?scope=all&per_page=100&page=1");
if (result.IsSuccessStatusCode)
{
var content = await result.Content.ReadAsStringAsync();
Issue[] issues = JsonSerializer.Deserialize<Issue[]>(content);
return Json(issues);
}
return NoContent();
}
Исключение:
Unhandled exception. System.OperationCanceledException: The operation was canceled.
at System.Threading.CancellationToken.ThrowOperationCanceledException()
at System.Threading.CancellationToken.ThrowIfCancellationRequested()
at Microsoft.Extensions.Hosting.Internal.Host.StopAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.WaitForShutdownAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)