При разработке и отладке конфигураций на платформе «1С:Предприятие 8.3» разработчики часто сталкиваются с неприятным поведением отладчика: при запуске клиентского приложения кнопкой F5 предмет отладки Сервер присутствует в списке, но в процессе работы неожиданно пропадает. Точки останова на серверной стороне перестают срабатывать, а повторно подключить серверный предмет отладки без перезапуска Конфигуратора или клиента не удается. Рассмотрим подробнее, почему происходит эта ошибка и какие способы позволяют раз и навсегда решить проблему.
Проанализируем механику работы кластера серверов 1С. Начиная с версии 8.3, платформа поддерживает динамическую балансировку нагрузки и миграцию сеансов пользователей между несколькими рабочими процессами rphost.exe. По умолчанию отладка в 1С работает по протоколу TCP/IP (ключ запуска -debug со значением по умолчанию -tcp).
Когда в кластере задействовано несколько рабочих процессов rphost.exe, происходит следующее:
rphost.exe, с которым Конфигуратор устанавливает TCP-соединение для отладки.rphost.exe.Разберем основной и наиболее надежный вариант решения проблемы. Платформа «1С:Предприятие 8.3» предоставляет альтернативный механизм отладки по протоколу HTTP, в котором за маршрутизацию предметов отладки отвечает отдельный сервис отладки dbgs.exe. При HTTP-отладке миграция сеансов между процессами rphost.exe не приводит к потере связи.
Чтобы перевести сервер 1С на HTTP-отладку, выполним следующие шаги:
ragent.exe).-debug и явно укажем протокол HTTP:
ragent.exe -debug -http
1560).После включения HTTP-протокола служба dbgs.exe будет централизованно агрегировать все предметы отладки со всех процессов rphost.exe, и отладчик перестанет отключаться.
Если по техническим причинам переключиться на HTTP-протокол невозможно, разберем альтернативный вариант — предотвращение миграции сеансов на уровне настроек кластера 1С.
1.При такой конфигурации все сеансы базы выполняются в рамках единого процесса rphost.exe, миграция прекращается, и классическая TCP-отладка работает стабильно.
Посмотрим на дополнительные факторы, которые могут вызывать отвал отладчика по протоколу TCP:
1560–1591), а также управляющий порт 1550. Отладка по TCP требует двунаправленного соединения: не только клиент подключается к серверу, но и сервер инициирует обратные соединения на ПК разработчика.bin\conf на сервере файл debugcfg.xml и зададим необходимый диапазон портов.