Size: a a a

2020 December 18

IC

Ilya Chernoudov in pro.net
так что я был не прав - надо пересоздавать httpclient как можно чаще
источник

IC

Ilya Chernoudov in pro.net
но! я хз как ты смог заинжектить тайпед клаент в синглтон
источник

LU

Lars Ulrich in pro.net
Ilya Chernoudov
так что я был не прав - надо пересоздавать httpclient как можно чаще
супер, спасибо
источник

IC

Ilya Chernoudov in pro.net
потому что регистрация тайпед клаента регистрирует клиента и куда его инжектить как transient
источник

LU

Lars Ulrich in pro.net
Ilya Chernoudov
но! я хз как ты смог заинжектить тайпед клаент в синглтон
ну фиг с ним, будем инжектить фабрику
источник

LU

Lars Ulrich in pro.net
Ilya Chernoudov
потому что регистрация тайпед клаента регистрирует клиента и куда его инжектить как transient
да-да, фабрика и там уже внутри дергать клиента от нее самой каждый раз
источник

IC

Ilya Chernoudov in pro.net
Ilya Chernoudov
потому что регистрация тайпед клаента регистрирует клиента и куда его инжектить как transient
источник

IC

Ilya Chernoudov in pro.net
вот тут TClient это сервис, который использует httpclient
источник

A

Anatoly in pro.net
Lars Ulrich
ну фиг с ним, будем инжектить фабрику
А можно ещё раз, почему это спасёт?
источник

IC

Ilya Chernoudov in pro.net
Anatoly
А можно ещё раз, почему это спасёт?
потому что фабрика, как оказалось, не менеджит диспозит хендлеры
источник

IC

Ilya Chernoudov in pro.net
они просто их выкидывает из кеша
источник

IC

Ilya Chernoudov in pro.net
вот эта ссылка
источник

LU

Lars Ulrich in pro.net
Anatoly
А можно ещё раз, почему это спасёт?
ну не факт, что спасет, так как есть еще нюанс с вебсокет коннектами. посыл основной в том, что так как тайпед клиент фабрики транзиент - неправильно его использовать в синглтоне, так как фабрика его не обслуживает и начинаются свистопляски, природу которых я все же не до конца понимаю, так как хттп клиент все же продолжает делать свою работу, пусть и левой задней ногой
источник

IC

Ilya Chernoudov in pro.net
Anatoly
А можно ещё раз, почему это спасёт?
короче нельзя создавать долго живущие HttpClient из фабрики, потому что хендлеры, удерживающие соединения будут жить дольше, чем ожидается. Потому что httpclientfactory уничтожает их только когда на них не останется ссылок.
источник

A

Anatoly in pro.net
Ilya Chernoudov
короче нельзя создавать долго живущие HttpClient из фабрики, потому что хендлеры, удерживающие соединения будут жить дольше, чем ожидается. Потому что httpclientfactory уничтожает их только когда на них не останется ссылок.
Хорошее резюме
источник

A

Anatoly in pro.net
С другой стороны это ж очевидно, наверно
источник

IC

Ilya Chernoudov in pro.net
источник

IC

Ilya Chernoudov in pro.net
источник

IC

Ilya Chernoudov in pro.net
Anatoly
С другой стороны это ж очевидно, наверно
вообще да, поэтому нельзя просто взять и в синглтон заинжектить typed client
источник

IC

Ilya Chernoudov in pro.net
потому что класс, который инжектит в себя httpclient, при обычной регистрации через AddHtpCLient<T> будет зарегистрирован как transient
источник