AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.04.2018, 17:21   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Отладка в D365FO
Всем привет!
Хочу зафиксировать то, с чем пришлось недавно столкнуться и с чем столкнулись многие, кто уже работает с D365FO, но что для новичков может быть будет интересно. Речь идет об отладке в Visual Studio.
Отладка в D365FO производится в Visual Studio путем присоединения (attach) студии к процессу. В момент отладки другие пользователи работать с системой не могут (сайт висит белым экраном).

Соответственно, как мы добираемся до отладчика:
Предварительная настройка
Название: pic-02.png
Просмотров: 2784

Размер: 38.4 Кб
  • Необходимо убедиться, что в параметрах отладки установлен путь к отладочным символам в каталог, где лежат модели Вашего приложения (у меня это C:\AOSService\PackagesLocalDirectory)
  • Необходимо убедиться, что указан путь к кэшу символов. Туда будут копироваться отладочные символы из источников. Для ускорения загрузки символов иногда указывают в роли папки кэша папку источник (ту же C:\AOSService\PackagesLocalDirectory), однако на мой взгляд не стоит этого делать, т.к. если Вам в дальнейшем захочется как-то скопировать эти папки с моделями или проанализировать каталог – то данные кэша будут мешаться.
Нажмите на изображение для увеличения
Название: pic-01.png
Просмотров: 539
Размер:	36.1 Кб
ID:	11894

Расстановка точек останова
Хорошо, когда есть возможность запустить код на исполнение сразу из студии (например, исполняемый класс (Runnable class)), но если надо провалиться в отладчик прямо из формы, то форму сначала нужно запустить в обозревателе и поставить точки останова в студии. Ищем нужную строку и жмем кнопку F9 или выбираем меню Debug-Toggle Breakpoint. В данном случае мы поставили точку останова на форме заказов на покупку (PurchTable)
Нажмите на изображение для увеличения
Название: pic-03.png
Просмотров: 527
Размер:	81.8 Кб
ID:	11895

Запуск обозревателя
Чтобы присоединиться к процессу обозревателя – обозреватель нужно сначала запустить. А иногда и перезапустить (или обновить), если он был запущен до того, как был выполнен билд. Открывать саму форму пока не надо, т.к. наша точка останова должна сработать на открытии формы, однако я укажу на скриншоте как из меню я вызываю форму
Нажмите на изображение для увеличения
Название: pic-16.png
Просмотров: 521
Размер:	82.1 Кб
ID:	11896

Присоединение
Идем в студию и выбираем пункт меню Debug-Attach to Process…
Название: pic-04.png
Просмотров: 2808

Размер: 18.4 Кб
Вот теперь и начинаются различия.
  • До версии 7.3 PU12 (а также в локальных виртуалках с демо-данными) необходимо было выбирать процесс w3wp.exe, для чего устанавливать флажок Show processes from all users и запускать предварительно студию с правами администратора
    Нажмите на изображение для увеличения
Название: pic-05.png
Просмотров: 459
Размер:	36.2 Кб
ID:	11898
    Название: pic-06.png
Просмотров: 2775

Размер: 14.6 Кб
  • После версии 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 устанавливать не потребуется)
Название: pic-07.png
Просмотров: 2790

Размер: 28.3 Кб
Нажмите на изображение для увеличения
Название: pic-08.png
Просмотров: 530
Размер:	39.4 Кб
ID:	11901

Загрузка отладочных символов
После присоединения к процессу необходимо убедиться, что все отладочные символы загрузились (бывает, что они не все загрузились).
Нажмите на изображение для увеличения
Название: pic-09.png
Просмотров: 451
Размер:	21.1 Кб
ID:	11902
Такая картинка говорит о том, что отладочные символы для данной точки останова не загрузились и либо они дозагрузятся, когда мы откроем форму, либо их надо вручную дозагрузить. Я предпочитаю загружать все символы, т.к. они один раз загрузятся и больше потом кнопка Load All не будет тормозить (если конечно не будет удален кэш файлов). Бывает конечно что подтормаживает, но в целом по моему субъективному мнению процесс загрузки ускоряется. В интернете я находил способы частичной загрузки, но как-то они у меня нестабильно работали. Иногда бывает, что надо отсоединиться (меню Debug-Stop debugging) и снова подсоединиться.
Нажмите на изображение для увеличения
Название: pic-10.png
Просмотров: 496
Размер:	25.5 Кб
ID:	11903
Нажмите на изображение для увеличения
Название: pic-11.png
Просмотров: 470
Размер:	34.0 Кб
ID:	11904

После успешной загрузки символов точка останова "краснеет":
Нажмите на изображение для увеличения
Название: pic-18.png
Просмотров: 548
Размер:	10.4 Кб
ID:	11910

Прерывание
Открываем нашу форму заказов на покупку, обозреватель подтормаживает, мы смотрим в студию и ... вот она заветная желтая полосочка со списком переменных внизу.
Нажмите на изображение для увеличения
Название: pic-12.png
Просмотров: 515
Размер:	78.2 Кб
ID:	11905
Следует обратить внимание на разницу пунктов меню между Debug-Stop debugging (или DetachAll) и Debug-Terminate All.
Нажмите на изображение для увеличения
Название: pic-13.png
Просмотров: 532
Размер:	43.3 Кб
ID:	11906
Нажмите на изображение для увеличения
Название: pic-14.png
Просмотров: 523
Размер:	40.1 Кб
ID:	11907
В последнем случае прекращается исполнение кода, в то время как в первых вариантах студия всего лишь отцепляется от исполнения кода, а код продолжает исполняться (Stop debugging – остановка отладки, но это не остановка выполнения кода)

Тоже самое для процесса w3wp.exe
Нажмите на изображение для увеличения
Название: pic-15.png
Просмотров: 537
Размер:	58.4 Кб
ID:	11908

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

Размер: 19.4 Кб

Забыл добавить. Версия, на которой все показывалось - 8.0 PU 15
Название: Снимок.JPG
Просмотров: 2916

Размер: 12.2 Кб
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось 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, отладка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
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
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:39.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.