У меня около 1000 запросов, которые я делаю при запуске приложения.После вызова ~ 200 запросов, возвращается только ~ 10, а затем мое приложение зависает и больше результатов не возвращается.
Вот как выглядит мой код:
// File1.cs
await Task.WhenAll(allUsers.Select(user => Connect(user)));
// File2.cs (вызывается внутри метода Connect)
var result = await client.PostAsync($"https://url.com",
new FormUrlEncodedContent(parameters)))
HttpClient является статическим, поэтому не должно быть проблем со слишком большим количеством экземпляров.
Я пробовал такие решения, как:
- Настройка ServicePointManager.DefaultConnectionLimit = int.MaxValue
- Размещение await client.PostAsync (...) в использованииоператор
- Использование .ConfigureAwait (false)
- Установка значения времени ожидания
- Поток данных TPL (ActionBlock) с параметром MaxDegreeOfParallelism, равным 2
Ни один извышеуказанные решения сработали, и у меня заканчиваются варианты.Есть ли причина, по которой он не может / не будет генерировать исключение или возвращать значение?Есть ли вероятность тупика при слишком большом количестве одновременных запросов?Любые предложения помогут.Спасибо
Ps.Я использую .Net Core 2.1