Если останавливается служба 1С, т. к. порт уже используется

Ситуация: в какой-то момент серверная ОС Windows начинает занимать порты 1С. При этом служба «Агент сервера 1С:Предприятия 8.3» останавливается. Упс, приехали.

Поиск «виновника» и отключение системной службы, которая заняла порт(ы), особой выгоды не дает. При следующей перезагрузке занять важный для 1С участок может любая другая.

Как выйти из этого положения?

Общие рекомендации

Перед основной настройкой рекомендуем удостовериться:

  1. Тип запуска Агента сервера 1С выставлен как «Автоматически».
  2. Активны и работают другие службы, от которых зависит Агент 1С — проверьте в свойствах службы на вкладке «Зависимости».

Причина

В особенностях работы сервера Windows. Есть такая штука, как динамические порты, система их берет рандомно и назначает процессам. Вот и решила ОС — почему бы не отдать и наши, родные для 1С порты (по умолчанию: 1540-1541, 1560-1591).

Варианты действий

По большому счету, у нас 2 пути:

  1. Указать другой диапазон служебных портов для Агента 1С (через изменение строки запуска службы в реестре)
    Строковый параметр ImagePath в разделе
    HKLM\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent (x86-64)
    или
    HKLM\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent
    Например,
    «C:\Program Files\1cv8\8.3.18.1208\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo»
  1. Исключить необходимые порты из диапазона динамических.

Изменение диапазона динамических портов

Для просмотра списка портов, помеченных как динамические, откройте командную строку от имени администратора и выполните:

netsh int ipv4 show dynamicportrange tcp

Команда вернет значения начального порта (Start Port) и числа динамических портов (Number of Ports).

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

netsh int ipv4 show excludedportrange tcp

И добавляем управляемые исключения портов с помощью команд:

netsh int ipv4 add excludedportrange tcp startport=1540 numberofports=2 store=persistent
netsh int ipv4 add excludedportrange tcp startport=1560 numberofports=32 store=persistent

Вуаля. Перезагружаете сервер и смотрите, как успешно стартует и, конечно же, работает ваша служба 1С.

__________
Если что-то не получается и требуется поддержка — наши программисты готовы помочь → +7-911-500-10-11

2 комментария

  1. Здравствуйте! А как все, что сделано этими командами, вернуть , как было? Ну вот не заработала 1С-ка или не стартует какая-то служба упорно. Или еще какая-то причина….Я просто хотел у Вас спросить, на всякий случай, как все вернуть назад? Я не силен в таких вещах, поэтому и спрашиваю. Проблема такая у нас есть и решать ее надо мне.

    1. Спасибо за вопрос. Резервирование портов убирается следующими командами* (применительно к описываемому случаю):
      netsh int ipv4 delete excludedportrange tcp startport=1540 numberofports=2 store=persistent
      netsh int ipv4 delete excludedportrange tcp startport=1560 numberofports=32 store=persistent

      * Выполняйте в командной строке от имени администратора

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

Ваш адрес email не будет опубликован.