Ошибка 0x00002740: only one usage of each socket address

Обновлено 27.09.2023

1С ошибка

Добрый день! Уважаемые читатели IT портала Pyatilistnik.org. В прошлый раз мы с вами рассмотрели методы позволяющие протестировать загрузочную флешку перед работой, что порой очень обосновано. В сегодняшней публикации я вам покажу методы диагностики и траблшутинга при подключении к серверу 1С, где в ряде случаев я ловил ошибку 0x00002740 only one usage of each socket address. Думаю, что данный алгоритм действий будет полезен как начинающим, так уже и опытным администраторам. Давайте приступать.

Описание ошибки 0x00002740

Обратился ко мне один из разработчиков с вопросом не знаю ли я в чем может быть причина ошибки:

Неклассифицированная ошибка работы с хранилищем конфигурации. По причине: Ошибка установки соединения по причине: server_addr=tcp://fqdn:port/ descr=ip-адрес:port:10048 (0x00002740) Only one usage of each socket address (protocol/network address/port) is normally permitted

Неклассифицированная ошибка работы с хранилищем конфигурации.
по причине:
Ошибка установки соединения
по причине:
server_addr=tcp://fqdn:port/ descr=ip-адрес:port:5555:10055(0x00002740): Only one usage of each socket address (protocol/network address/port) is normally permitted. ;
line=1002 file=D:\Jenkins\ci_builder\WindowsBuild2_XQV1CCIIPB0O\Platform\src\rtrsrvc\src\DataExchangeTcpClientImpl.cpp

1С: ошибка 0x00002740 only one usage of each socket address

Диагностика и устранение ошибки 0x00002740

Выше я специально выделил две ошибки 10055 и 10048, так как они многое могут рассказать, обратимся к сайту Microsoft:

  • 1️⃣WSAEADDRINUSE 10048 - Адрес уже используется. - Как правило, разрешено использовать только один адрес сокета (протокол, IP-адрес или порт). Эта ошибка возникает, если приложение пытается привязать сокет к IP-адресу или порту, который уже использовался для существующего сокета, или сокета, который был закрыт неправильно, или тот, который все еще находится в процессе закрытия.
  • 2️⃣WSAENOBUFS 10055- Буферное пространство недоступно. Не удалось выполнить операцию сокета, так как в системе недостаточно места в буфере или из-за переполнения очереди.

Список остальных кодов - https://learn.microsoft.com/ru-ru/windows/win32/winsock/windows-sockets-error-codes-2

Понимая, что нет свободных сокетов можно двигаться дальше, мы кстати такое уже ловили, когда у нас просто останавливалась служба 1С, советую почитать. Открываем на сервере командную строку в режиме администратора и вводим команду:

netstat -abno

В результате я увидел, что огромное количество динамических портов с 49152 по 65535 были заняты приложением от Касперского.

netstat антивирус Касперского занял свободные порты с 49000 по 65000

Если открыть просмотр событий и посмотреть логи, то была огромная куча ошибок ID 15005.

огромная куча ошибок ID 15005

Unable to bind to the underlying transport for [::]:51885. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.

The IP Listen-Only list may contain a reference to an interface which may not exist on this machine

Так же можно увидеть, что многие программы ждут когда освободятся динамические порты, поэтому и соединения с сервером 1С, то были, то пропадали.

netstat просмотр процессов ожидающих освобождение динамического порта

Так, что виновник найден. У вас варианты:

  • Перезагрузиться и до настроить Касперского, чтобы он не создавал такое количество соединений
  • Исключить определенные порты, чтобы их не занимали и отдать это программа, как мы делали с 1С, ссылка выше в середине статьи.

На этом у меня все, с вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *