Участник сообщества #19
Участник сообщества #19
31 окт. 2025 г., 08:02(изменён)
Решено
0
0

Ошибка при использовании tools.get_object_assembly("HttpRequest")

Из чата сообщества

Всем привет, кто-то смотрел под капотом разницу HttpRequest и tools.get_object_assembly("HttpRequest") После перехода на tools стали ловить ошибку:

he SSL connection could not be established, see inner exception. Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..

И такое ощущение что она каждый раз создаёт новый HttpClient и в итоге при большом колличестве запросов забивает пул.

Участник сообщества
Участник сообщества31 окт. 2025 г., 09:33(изменён)
Решение

Приветствую , ну для начала можно увеличить лимит в xhttp_config.json и посмотреть , например поставить очень высокие:

"WorkerThreads": { "MinWorkerThreads":"3000", "MinIOCThreads":"5000" },

Участник сообщества
Участник сообщества31 окт. 2025 г., 08:29(изменён)

Привет! Помню фиксил когда-то ошибку на c#, too many connections, пофиксил насколько помню(а было года 3 назад), использованием фабрики IHttpClientFactory

{ 'name': 'HttpRequest', 'dotnet_lib': 'Websoft.HttpRequest.dll', 'dotnet_object': 'Websoft.HttpRequest.HttpRequest', 'bNoCache': true }

Доступа к Websoft.HttpRequest.HttpRequest у меня нет как понял, посмотреть что там происходит не могу

Можно 'bNoCache': false поставить и посмотреть будет ли воспроизводится ошибка Или вернуть все на HttpRequest и посмотреть будет ли воспроизводится такая ошибка

Участник сообщества
Участник сообщества31 окт. 2025 г., 09:14(изменён)

по факту никакой разницы, не знаю зачем переходили, но судя по ошибке у вас сертификата по сети не хватает

такое обычно происходит, когда во внутренней сети идет обращение. но по вне системы... Это аналогично, как браузер пишет, что просроченный сертификат при подключении на сайт...

Участник сообщества
Участник сообщества31 окт. 2025 г., 09:20(изменён)

Пробовали что-то типо метода Dispose (не уверен, что он есть, но по идее должен быть) после получения ответа?

а это скорее всего, медиатайп надо было просто менять, через опции, оно как правило из-за него сбоит...

ну тут только пулл очереди сделать, и сокращать его при получении ответа, ограничив количество ожиданий

Ибо сам запрос асихронен в коде, и никак не поменять это, ну, как не поменять, можно в dll поправить просто, но очень не рекомендую так делать 🤔

Не, можно, просто такой же файл копируешь, с изменением, и подменяешь, но в таком случае, просто свой написать, с др названием и добавить вызов, через регистрацию компонента билиотеки

Но просто если блочить поток ожиданием, то быстро вся система встанет...

Через пулл, если правда забивается запросами, то это самое разумное решение

Чтобы ответить, необходимо войти в систему