Страницы: 1
RSS
Почему не работает отладка на сервере, Почему не работает отладка на сервере
 

Добрый день! Предлагаю обсудить вопросы отладки на сервере. У кого какие есть вопросы по теме?

Изменено: Ирина Клейн - 26.06.2023 09:35:15
 
Добрый день!
Изменено: PAA - 09.06.2023 10:55:20
 

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

 

Добрый день! Ну, причин несколько может быть. У меня как-то было, что в списке предметов отладки не были видны серверные сеансы. Возможно, у вас сервер 1С запущен не в режиме отладки. Для того чтобы включить режим отладки, службу сервера 1С нужно запустить с ключом –debugв строке запуска службы «Агент сервера 1С:Предприятия 8.3».

Запусксопциейотладки:

«C:\Program Files\1cv8\8.x.xx.xxxx\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d «C:\Program Files\1cv8\srvinfo»

Условия запуска меняются в реестре — через строковый параметр «ImagePath». Разделнаходитсяздесьвзависимостиотразрядности:

HKLM\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent

HKLM\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent (x86-64)

Для активации потребуется рестарт службы либо перезагрузка сервера.

Это был первый шаг. Затем в меню «Сервис — Параметры — Запуск 1С:Предприятия — Дополнительные» включите опции: «Устанавливать режим разрешения отладки» и «Начинать отладку при запуске».

Далее через Конфигуратор откройте «Отладка — Подключение» — какие сеансы у вас показываются в предметах отладки; поставьте настройки в окне «Автоматическое подключение». Ну и, конечно, при использовании отладки по протоколу TCP/IP возможно потребуется настройка правил брандмауэра.

 

Подключусь к обсуждению… Еще может быть, что в списке предметов отладки не видны ни клиентские, ни серверные сеансы. Имею в виду, что предметы отладки находятся не на том компьютере, где запущен отладчик 1С. Актуально это как для серверных, так и для клиентских сеансов. Для решения проблемы обычно достаточно указать имя удаленного компьютера для поиска предметов отладки и обновить список.

Если и после этого список пустой, то нужно вбить вместо имени IP-адрес удалённого компьютера. В случае если это помогло, то рекомендуется прописать привязки имен и IP-адресов компьютеров в файле hosts. Если и это не помогло, то необходимо проверить настройку фаервола, разрешены ли на сервере 1С (или удаленном клиенте) входящие соединения с компьютера где запущен отладчик на порты 1560-1591.

 

А у нас как-то было, что в списке предметов отладки не были видны клиентские сеансы. Причина оказалась в том, что не была разрешена отладка клиентского приложения. Для разрешения отладки клиентского сеанса достаточно в настройках программы в режиме 1С Предприятие указать в параметре «Отладка в текущем сеансе» — Разрешена TCP/IP.

Бывает и так, что Предмет отладки виден в конфигураторе и подключается, но точка останова все равно не срабатывает на строке кода.

Данная проблема актуальна при отладке по протоколу TCP. Причина в том, что отладчик не может принимать входящие соединение из-за того что брандмауер или фаервол блокируют сетевое взаимодействие между отладчиком и предметом отладки. Тут нужно понимать, что отладчик не только устанавливает исходящее соединение с предметом отладки, но также должен иметь возможность принимать входящее соединение. Проблема решается отключением фаервола на компьютере где запущен отладчик либо открытием входящих соединений на портах 1560-1591 для исполняемого файла 1cv8.exe.

 

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

 

Админы наши говорят, что в брэндмауэр на сервере все правила настроены. Админы опытные, причем на тестовом сервере все работает с клиента.

 

Послушайте, если вы пишите, что на самом сервере отладка серверных процедур работает. В таком случае проблема однозначно в настройке брандмауеров/фаерволов и сети. Если бы проблема была в том, как пишется ключ debug, то отладка не работала бы нигде.

Для эксперимента пусть админы отключат брандмауеры и на сервере и на компе, где пытаетесь запустить отладку. Если у вас все порты по умолчанию, то на сервере и на клиенте должны быть открыты TCP и UDP порты 1540, 1541, 1560-1591.

И учтите, что сервер с клиентом (компом, где запускается отладка) общаются при отладке. Поэтому и на клиенте и на сервере разрешены должны быть как входящие соединения, так и исходящие. Об этом часто забывают, открывая только входящие подключения.

Страницы: 1