AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
Old 25.04.2018, 17:21   #1  
sukhanchik is offline
sukhanchik
Administrator
sukhanchik's Avatar
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,343 / 3563 (125) ++++++++++
Join Date: 13.06.2004
Location: Москва
Отладка в D365FO
Всем привет!
Хочу зафиксировать то, с чем пришлось недавно столкнуться и с чем столкнулись многие, кто уже работает с D365FO, но что для новичков может быть будет интересно. Речь идет об отладке в Visual Studio.
Отладка в D365FO производится в Visual Studio путем присоединения (attach) студии к процессу. В момент отладки другие пользователи работать с системой не могут (сайт висит белым экраном).

Соответственно, как мы добираемся до отладчика:
Предварительная настройка
Name:  pic-02.png
Views: 7197
Size:  38.4 KB
  • Необходимо убедиться, что в параметрах отладки установлен путь к отладочным символам в каталог, где лежат модели Вашего приложения (у меня это C:\AOSService\PackagesLocalDirectory)
  • Необходимо убедиться, что указан путь к кэшу символов. Туда будут копироваться отладочные символы из источников. Для ускорения загрузки символов иногда указывают в роли папки кэша папку источник (ту же C:\AOSService\PackagesLocalDirectory), однако на мой взгляд не стоит этого делать, т.к. если Вам в дальнейшем захочется как-то скопировать эти папки с моделями или проанализировать каталог – то данные кэша будут мешаться.
Click image for larger version

Name:	pic-01.png
Views:	577
Size:	36.1 KB
ID:	11894

Расстановка точек останова
Хорошо, когда есть возможность запустить код на исполнение сразу из студии (например, исполняемый класс (Runnable class)), но если надо провалиться в отладчик прямо из формы, то форму сначала нужно запустить в обозревателе и поставить точки останова в студии. Ищем нужную строку и жмем кнопку F9 или выбираем меню Debug-Toggle Breakpoint. В данном случае мы поставили точку останова на форме заказов на покупку (PurchTable)
Click image for larger version

Name:	pic-03.png
Views:	564
Size:	81.8 KB
ID:	11895

Запуск обозревателя
Чтобы присоединиться к процессу обозревателя – обозреватель нужно сначала запустить. А иногда и перезапустить (или обновить), если он был запущен до того, как был выполнен билд. Открывать саму форму пока не надо, т.к. наша точка останова должна сработать на открытии формы, однако я укажу на скриншоте как из меню я вызываю форму
Click image for larger version

Name:	pic-16.png
Views:	565
Size:	82.1 KB
ID:	11896

Присоединение
Идем в студию и выбираем пункт меню Debug-Attach to Process…
Name:  pic-04.png
Views: 7105
Size:  18.4 KB
Вот теперь и начинаются различия.
  • До версии 7.3 PU12 (а также в локальных виртуалках с демо-данными) необходимо было выбирать процесс w3wp.exe, для чего устанавливать флажок Show processes from all users и запускать предварительно студию с правами администратора
    Click image for larger version

Name:	pic-05.png
Views:	493
Size:	36.2 KB
ID:	11898
    Name:  pic-06.png
Views: 7083
Size:  14.6 KB
  • После версии 7.3 PU12 в тех облачных средах, где отобрали права администратора добавили такую штуку, как IIS Express. Он визуально выглядит, как дополнительный значок в трее. При входе в студию (без повышенных прав администратора) останавливается служба World Wide Web Publishing Service (та самая w3wp.exe, к которой мы подключались до этого) и стартует IIS Express. Само собой, сайт, который хостится на этой службе падает, хотя и поднимается на IIS Express. В принципе это незаметно ровно то тех пор, пока со средой работает только один разработчик (как того и требует МС). Соответственно присоединяться мы будем уже не к w3wp.exe, а к iisexpress.exe и этот процесс будет висеть в процессах пользователя (флажок Show processes from all users устанавливать не потребуется)
Name:  pic-07.png
Views: 7093
Size:  28.3 KB
Click image for larger version

Name:	pic-08.png
Views:	572
Size:	39.4 KB
ID:	11901

Загрузка отладочных символов
После присоединения к процессу необходимо убедиться, что все отладочные символы загрузились (бывает, что они не все загрузились).
Click image for larger version

Name:	pic-09.png
Views:	499
Size:	21.1 KB
ID:	11902
Такая картинка говорит о том, что отладочные символы для данной точки останова не загрузились и либо они дозагрузятся, когда мы откроем форму, либо их надо вручную дозагрузить. Я предпочитаю загружать все символы, т.к. они один раз загрузятся и больше потом кнопка Load All не будет тормозить (если конечно не будет удален кэш файлов). Бывает конечно что подтормаживает, но в целом по моему субъективному мнению процесс загрузки ускоряется. В интернете я находил способы частичной загрузки, но как-то они у меня нестабильно работали. Иногда бывает, что надо отсоединиться (меню Debug-Stop debugging) и снова подсоединиться.
Click image for larger version

Name:	pic-10.png
Views:	526
Size:	25.5 KB
ID:	11903
Click image for larger version

Name:	pic-11.png
Views:	504
Size:	34.0 KB
ID:	11904

После успешной загрузки символов точка останова "краснеет":
Click image for larger version

Name:	pic-18.png
Views:	584
Size:	10.4 KB
ID:	11910

Прерывание
Открываем нашу форму заказов на покупку, обозреватель подтормаживает, мы смотрим в студию и ... вот она заветная желтая полосочка со списком переменных внизу.
Click image for larger version

Name:	pic-12.png
Views:	554
Size:	78.2 KB
ID:	11905
Следует обратить внимание на разницу пунктов меню между Debug-Stop debugging (или DetachAll) и Debug-Terminate All.
Click image for larger version

Name:	pic-13.png
Views:	573
Size:	43.3 KB
ID:	11906
Click image for larger version

Name:	pic-14.png
Views:	562
Size:	40.1 KB
ID:	11907
В последнем случае прекращается исполнение кода, в то время как в первых вариантах студия всего лишь отцепляется от исполнения кода, а код продолжает исполняться (Stop debugging – остановка отладки, но это не остановка выполнения кода)

Тоже самое для процесса w3wp.exe
Click image for larger version

Name:	pic-15.png
Views:	567
Size:	58.4 KB
ID:	11908

Еще маленькое дополнение к IIS Express. Если в силу ряда причин хочется отказаться от использования IIS Express и вернуться к старому доброму IIS (а также хочется, чтобы при открытии студии сайт не падал при переключении с IIS на IIS Express), то можно в файлике C:\AosService\PackagesLocalDirectory\Bin\DynamicsDevConfig.xml заменить значение параметра RuntimeHostType с IISExpress на IIS (само собой после этого нужен рестарт IIS). После этого для отладки нужно будет подключаться к процессу w3wp.exe
Name:  pic-17.png
Views: 7056
Size:  19.4 KB

Забыл добавить. Версия, на которой все показывалось - 8.0 PU 15
Name:  Снимок.JPG
Views: 7089
Size:  12.2 KB
__________________
Возможно сделать все. Вопрос времени

Last edited by sukhanchik; 25.04.2018 at 17:51.
This post has been rated by: 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).
Tags
d365, d365 for operations, debugger, debugger365, lbd, отладка

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
instructorbrandon: April 12th, One Hour D365UG Training Webinar on Undocumented Technique for Performance Tuning D365FO Blog bot DAX Blogs 0 11.04.2018 03:42
D365FO - Как выбрать группу ресурсов (Azure Resource Group) для одно-серверной облачной среды D365FO? MarinaAX DAX: Администрирование 1 14.02.2018 00:03
cleverax: D365FO: Using Bar codes, External codes and GTIN in Warehouse app to identify an item. Blog bot DAX Blogs 0 03.02.2018 21:13
cleverax: D365FO: Filter codes to restrict products available for customer sale Blog bot DAX Blogs 0 03.02.2018 21:13
patrickmouwen: Dynamics 365 CRM and ERP interaction Blog bot DAX Blogs 0 29.12.2017 03:11

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 23:56.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.