Size: a a a

2020 December 18

IC

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

DP

Denis Petukhov in pro.net
Ну если заинжектить фабрику и в конструкторе создать клиент то будет то же самое офк)
источник

DP

Denis Petukhov in pro.net
Надо именно в методе создавать новый клиент
источник

IC

Ilya Chernoudov in pro.net
Denis Petukhov
Ну если заинжектить фабрику и в конструкторе создать клиент то будет то же самое офк)
ну тут уж ты сам виноват)
источник

DP

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

DP

Denis Petukhov in pro.net
Хотя наверное нельзя никак залочить использование текущего
источник

IC

Ilya Chernoudov in pro.net
Denis Petukhov
А зачем ей уничтожать? Она же может новый создать и ссылку подменить (с локом)
вот не делает так
источник

DP

Denis Petukhov in pro.net
Потому что локи должны быть тогад внутри хэндлера и фабрика ими управлять должна
источник

DP

Denis Petukhov in pro.net
Ну или должен быть какойто декоратор :}
источник

DP

Denis Petukhov in pro.net
А то ты можешь по время использования хэндлера подменить и тогда будет хуитка
источник

DP

Denis Petukhov in pro.net
Забавно что эту фабрику делали чтобы у всех все норм работало но способы выстрелить себе в ногу все равно остались
источник

LU

Lars Ulrich in pro.net
Denis Petukhov
Ну если заинжектить фабрику и в конструкторе создать клиент то будет то же самое офк)
ну в моем случае будет на каждый вызов апи дергаться _httpClientFactory.CreateClient(clientName)
источник

DP

Denis Petukhov in pro.net
Lars Ulrich
ну в моем случае будет на каждый вызов апи дергаться _httpClientFactory.CreateClient(clientName)
Тогда норм должно быть
источник

EZ

Eugene Zakharov in pro.net
Lars Ulrich
ну в моем случае будет на каждый вызов апи дергаться _httpClientFactory.CreateClient(clientName)
а что за кейс с синглтоном?
источник

LU

Lars Ulrich in pro.net
Eugene Zakharov
а что за кейс с синглтоном?
а у меня аппликейшн в ажуре который хостится, начинает жестоко рыгать после 10-12 часов аптайма. там в синглтон заинжекчен тайпед хттп клиент, который практически всю основную работу делает. а он транзиент. Возможно, конечно, что свистопляска с ресурсами не из-за него, а из-за тухлых сокет коннектов, но это другая история, с которой предстоит разобраться. Пока пришли к тому, что нечего в синглтон инжектить транзиент хттп клиент, а лучше инжектить саму фабрику, и там на каждый реквест этого клиента создавать новый, ну или реюзать старый, но то уже пусть сама фабрика решает
источник

AB

Alex Bespalov in pro.net
Ваще это всегда странно - инжектить в то что имеет больший лайфтайм что то с меньшим. Типа в синглтон положили транзиент.
источник

AB

Alex Bespalov in pro.net
Вангану, шо инфа 100%, что через 10-12 часов из за такой работы с хттпклиентом и появляются проблемы.
источник

DP

Denis Petukhov in pro.net
Возможно хэндлер держит сокет все это время и через 10-12 часов сокет перестает работать нормально (а можежт и нет, я не шарю в сокетах итд)
источник

DP

Denis Petukhov in pro.net
По крайней мере сам хэндлер IDisposable жи. А мы его не диспозим долгое время
источник

IC

Ilya Chernoudov in pro.net
Denis Petukhov
По крайней мере сам хэндлер IDisposable жи. А мы его не диспозим долгое время
дело в том, что ты его и через httpclient пришедший из factory не задиспозишь
источник