Я использую метод GetAsync для получения ответа от сервера. Следующий код работает нормально для первых двух итераций, а затем выдает ошибку с сообщением «Задача была отменена». Я искал в Интернете, но не нашел обходного пути. Была рекомендация использовать async/await из-за взаимоблокировки, но я не думаю, что здесь проблема, и это тоже не сработало.
Любые идеи, что вызывает исключения и как это предотвратить?
Изменить: я уже рассмотрел этот вопрос и попытался использовать async/await, как уже упоминалось, и изменил время ожидания по умолчанию на 5 минут вместо 100 секунд. Ни один из них не работал. Я предполагаю, что это что-то еще, поскольку из журнала Netstat я вижу, что порт находится в состоянии TIME_WAITING.
HttpClient — задача была отменена?
Примечание. Я использую System.Net.Http версии 4.3.4 и .NET 4.6.1.
using System;
using System.Net.Http;
namespace Main
{
class Program
{
static void Main(string[] args)
{
var client = new HttpClient();
string url = "https://www.google.com";
for (int i = 0; i < 10; i++)
{
var response = client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead).GetAwaiter().GetResult();
Console.WriteLine(response.StatusCode);
}
Console.ReadKey();
}
}
}
async
иawait [HttpClient].GetAsync(...)
. Используйтеstatic
HttpClient. - person Jimi   schedule 29.05.2020response
одноразовый, поэтому напишите что-то вроде:using (var response = client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead).GetAwaiter().GetResult()) { Console.WriteLine(response.StatusCode); }
. Используйте статический HttpClient. - person Jimi   schedule 29.05.2020