C#. NET Core ReadAsStringAsyn c () выбрасывает System.OperationCanceledException - PullRequest
0 голосов
/ 08 января 2020

Я использую 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)
...