25.04.2018, 17:21 | #1 |
Administrator
|
Отладка в D365FO
Всем привет!
Хочу зафиксировать то, с чем пришлось недавно столкнуться и с чем столкнулись многие, кто уже работает с D365FO, но что для новичков может быть будет интересно. Речь идет об отладке в Visual Studio. Отладка в D365FO производится в Visual Studio путем присоединения (attach) студии к процессу. В момент отладки другие пользователи работать с системой не могут (сайт висит белым экраном). Соответственно, как мы добираемся до отладчика: Предварительная настройка
Расстановка точек останова Хорошо, когда есть возможность запустить код на исполнение сразу из студии (например, исполняемый класс (Runnable class)), но если надо провалиться в отладчик прямо из формы, то форму сначала нужно запустить в обозревателе и поставить точки останова в студии. Ищем нужную строку и жмем кнопку F9 или выбираем меню Debug-Toggle Breakpoint. В данном случае мы поставили точку останова на форме заказов на покупку (PurchTable) Запуск обозревателя Чтобы присоединиться к процессу обозревателя – обозреватель нужно сначала запустить. А иногда и перезапустить (или обновить), если он был запущен до того, как был выполнен билд. Открывать саму форму пока не надо, т.к. наша точка останова должна сработать на открытии формы, однако я укажу на скриншоте как из меню я вызываю форму Присоединение Идем в студию и выбираем пункт меню Debug-Attach to Process… Вот теперь и начинаются различия.
Загрузка отладочных символов После присоединения к процессу необходимо убедиться, что все отладочные символы загрузились (бывает, что они не все загрузились). Такая картинка говорит о том, что отладочные символы для данной точки останова не загрузились и либо они дозагрузятся, когда мы откроем форму, либо их надо вручную дозагрузить. Я предпочитаю загружать все символы, т.к. они один раз загрузятся и больше потом кнопка Load All не будет тормозить (если конечно не будет удален кэш файлов). Бывает конечно что подтормаживает, но в целом по моему субъективному мнению процесс загрузки ускоряется. В интернете я находил способы частичной загрузки, но как-то они у меня нестабильно работали. Иногда бывает, что надо отсоединиться (меню Debug-Stop debugging) и снова подсоединиться. После успешной загрузки символов точка останова "краснеет": Прерывание Открываем нашу форму заказов на покупку, обозреватель подтормаживает, мы смотрим в студию и ... вот она заветная желтая полосочка со списком переменных внизу. Следует обратить внимание на разницу пунктов меню между Debug-Stop debugging (или DetachAll) и Debug-Terminate All. В последнем случае прекращается исполнение кода, в то время как в первых вариантах студия всего лишь отцепляется от исполнения кода, а код продолжает исполняться (Stop debugging – остановка отладки, но это не остановка выполнения кода) Тоже самое для процесса w3wp.exe Еще маленькое дополнение к IIS Express. Если в силу ряда причин хочется отказаться от использования IIS Express и вернуться к старому доброму IIS (а также хочется, чтобы при открытии студии сайт не падал при переключении с IIS на IIS Express), то можно в файлике C:\AosService\PackagesLocalDirectory\Bin\DynamicsDevConfig.xml заменить значение параметра RuntimeHostType с IISExpress на IIS (само собой после этого нужен рестарт IIS). После этого для отладки нужно будет подключаться к процессу w3wp.exe Забыл добавить. Версия, на которой все показывалось - 8.0 PU 15
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 25.04.2018 в 17:51. |
|
|
За это сообщение автора поблагодарили: Logger (15), imir (2), raz (10), DAX.Company (3), trud (10), mazzy (10), AlexeyS (5), EVGL (10), Stitch_MS (9), Weez (2), S.Kuskov (10), gl00mie (10), A_BAS (2), MarinaAX (2), IvanS (1), Ivanhoe (5), Melkiades (1). |
Теги |
d365, d365 for operations, debugger, debugger365, lbd, отладка |
|
|