HttpClient не использует точки обслуживания ServicePointManager - PullRequest
0 голосов
/ 03 сентября 2018

По умолчанию HttpClient использует только 2 одновременных соединения на хост. Согласно документам я могу это изменить. Я не хочу менять это на глобальном уровне, я просто хочу изменить это для службы, которую я использую. Поэтому я написал следующий код:

// Increase connection limit in order to have more concurrent requests to MyService
ServicePointManager.FindServicePoint(myServiceUrl, null).ConnectionLimit = 20;

К сожалению, это не работает. Служба (вызываемая через HttpClient) по-прежнему использует только 2 одновременных соединения. Если я изменю код на:

ServicePointManager.DefaultConnectionLimit = 20;

В том же месте кода это работает. Однако я не хочу глобально изменять этот параметр. Как изменить его только локально?

Редактировать: Я понял, что что-то устанавливает предел подключения обратно на 2. Есть ли какая-либо операция (например, создание нового WebRequestHandler, создание нового HttpClient, ...?), Который сбрасывает ограничение подключения?

1 Ответ

0 голосов
/ 03 сентября 2018

Я обнаружил проблему, мы столкнулись со следующей ошибкой .NET:

https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/534719-Networking.ServicePoint.ConnectionLimit%20default%20behavior%20changed.md

...