C# HttpClient Multiple Get Requests одновременно дает Систему. Net .Sockets.SocketException (10060) Исключение - PullRequest
0 голосов
/ 16 апреля 2020

Как предложил @ Ответ Джона Ву на Stackoverflow . Я использую следующий код для выполнения одновременных запросов HTTP HTTP на том же хосте для отправки SMS

    public async Task SendBulk(List<string> recipentURLs)
    {
        using (var client = new HttpClient())
        {
            //Start requests for all of them
            var requests = recipentURLs.Select(url => client.GetAsync(url)).ToList();

            //Wait for all the requests to finish
            await Task.WhenAll(requests);
        }
    }

Теперь у меня возникла исключительная ситуация: 1008 *

System.Net.Http.HttpRequestException: An error occurred while sending the request.
 ---> System.IO.IOException: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond..
 ---> System.Net.Sockets.SocketException (10060): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

API, которому я отправляю запросы, не требует ответа (поскольку я использую его только для отправки смс).

Я использую это в задании Backgroud с помощью HangFire. Так что я в порядке, если это займет много времени.

Сейчас я ищу эффективный способ отправки нескольких HTTP-запросов на один и тот же хост.

Как можно безопасно обработать все эти параллельные запросы и повторить попытку в случае сбоя любого из них?

Также в настоящее время я изучаю, что из-за HTTP Throttling я не могу использовать 2 подключения к одному хосту?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...