Flurl утверждает, что использование одноэлементного клиента является рекомендуемым шаблоном:
HttpClient предназначен для однократного создания экземпляра и повторного использования в течение всего жизненного цикла приложения. Создание нового экземпляра HttpClient для каждого запроса, особенно в серверных приложениях, приведет к исчерпанию количества сокетов, доступных при больших нагрузках. Это приведет к ошибкам SocketException.
Но начиная с Asp.Net Core 2.1 существуют обновленные правила для времени жизни HttpClient в Net Core 2.1 < / а>.
Когда вы используете HttpClientFactory для запроса HttpClient, вы фактически получаете каждый раз новый экземпляр, а это означает, что нам не нужно беспокоиться об изменении его состояния. Этот HttpClient может (или не может) использовать существующий HttpClientHandler из пула и, следовательно, использовать существующее открытое соединение.
Как изменить Flurl для использования IHttpClientFactory под капотом? Должен ли я создать пользовательский Flurl settings.HttpClientFactory
и создать там HttpClient через MS IHttpClientFactory?