Документация по разработке bpm’online
PDF

Отладка серверного кода

Glossary Item Box

Общие положения

В процессе разработки на платформе bpm'online может возникнуть необходимость выполнить отладку кода серверных схем исходного кода. Это могут быть, например, существующие базовые схемы, пользовательские конфигурационные классы, веб-сервисы или скрипты бизнес-процессов, написанные на языке C#. Выполнять отладку такого кода удобно с помощью интегрированных функций отладки среды разработки, например, Visual Studio. Отладчик Visual Studio позволяет приостанавливать выполнение методов, проверять значения переменных, изменять их и получать полное представление о том, что делает код.

Чтобы приступить к отладке приложения, необходимо выполнить ряд шагов:

  1. Выгрузить исходные коды конфигурации bpm'online в файлы локального каталога.
  2. Создать новый проект в Visual Studio, в котором будет выполняться отладка
  3. Добавить в проект Visual Studio выгруженных файлов с исходным кодом.
  4. Из проекта прикрепиться к рабочему процессу сервера IIS и начать процесс отладки.

ВАЖНО

Выполнять отладку описанным в статье способом можно только для приложений, развернутых on-site.

ВАЖНО

Отладку серверного кода описанным в данной статье методом можно только при выключенном режиме разработки в файловой системе (см. статью "Разработка в файловой системе").

ВАЖНО

Чтобы во время отладки была возможность узнать значения переменных, необходимо включить признак [Suppress JIT Optimization] (меню [Options], вкладки [Debugging] > [General]). Подробнее об оптимизированном и неоптимизированном коде во время отладки можно узнать из статьи "JIT Optimization and Debugging" документации Visual Studio.

1. Выгрузка исходных кодов конфигурации

Для этого необходимо выполнить настройку приложения.

В файле Web.config, расположенном в корневом каталоге приложения ("внешний" Web.config), для атрибута debug элемента compilation необходимо установить значение "true":

<compilation debug="true" targetFramework="4.5" />

После внесения изменений файл необходимо сохранить.

В файле Web.config, расположенном в каталоге Terrasoft.WebApp приложения ("внутренний" Web.config), необходимо указать значения для следующих элементов:

  • Для настройки IncludeDebugInformation необходимо указать значение "true".
  • Для настройки CompilerSourcesTempFolderPath в качестве значения нужно указать путь к каталогу, в который будут выгружаться файлы с исходными кодами.
  • Для настройки ExtractAllCompilerSources указать значение "true", если необходимо выгружать все схемы при выполнении действия [Компилировать измененное] ([Compile modified items]) раздела [Конфигурация]. Чтобы выгружать только измененные схемы, необходимо установить значение "false" (значение по умолчанию).
<add key="IncludeDebugInformation" value="true" />
<add key="CompilerSourcesTempFolderPath" value="Путь_к_локальному_каталогу" />
<add key="ExtractAllCompilerSources" value="false" />

После внесения изменений файл необходимо сохранить.

Чтобы выгрузить файлы с исходными кодами серверных схем, необходимо в разделе [Конфигурация] приложения выполнить действие [Компилировать все] ([Compile all items]) (рис. 1).

Рис. 1. — Выполнение действия [Компилировать все]

Во время компиляции в папку, указанную в настройке CompilerSourcesTempFolderPath "внутреннего" Web.config, будут выгружены файлы с исходными кодами конфигурационных схем приложения, а также конфигурационные библиотеки, их модули и файлы с отладочной информацией (*.pdb). Исходные коды схем будут выгружены заново при каждой последующей компиляции приложения.

К СВЕДЕНИЮ

При компиляции будут выгружаться файлы исходных кодов схем того рабочего пространства, под которым была запущена компиляция. Файлы выгруженных исходных кодов конфигурационных схем именуются в определенном формате: [Название схемы в конфигурации].[Название пакета]_[Тип схемы].cs.

Например: Contact.Base_Entity.cs, ContractReport.Base_Report.cs.

2. Создание проекта Visual Studio для отладки

ВАЖНО

Для отладки исходного кода создавать проект Visual Studio не обязательно. Достаточно открыть в Visual Studio нужные файлы. Однако, если отладка выполняется часто, или необходимо работать с большим количеством файлов одновременно, то создание проекта сделает работу более удобной.

Чтобы создать проект для отладки приложения в Visual Studio, необходимо выполнить команду меню File > New > Project (рис. 2).

Рис. 2. — Создание нового проекта в Visual Studio

В окне свойств создаваемого проекта необходимо выбрать тип проекта [Class Library (.NET Framework)] (библиотека классов для классического приложения Windows), указать название и расположение проекта (рис. 3).

Рис. 3. — Свойства проекта Visual Studio

После создания проекта необходимо удалить из него лишний файл (по умолчанию в новый проект добавлен файл Class1.cs) и сохранить проект.

3. Добавление в проект Visual Studio выгруженных файлов с исходным кодом

Для этого в контекстном меню проекта в проводнике решения необходимо выбрать команду Add > Existing Item. В появившемся диалоговом окне необходимо перейти в каталог с выгруженными файлами с исходным кодом и выбрать все файлы (рис. 4).

Рис. 4. — Добавление файлов в проект

К СВЕДЕНИЮ

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

После добавления файлов проект необходимо сохранить.

4. Прикрепление к рабочему процессу IIS для отладки

Чтобы начать отладку, необходимо прикрепиться к процессу сервера IIS, в котором запущено приложение. Для этого нужно в меню Visual Studio выбрать команду Debug > Attach to process (рис. 5).

Рис. 5. — Прикрепление к процессу

В открывшемся окне в списке процессов нужно выбрать рабочий процесс IIS, в котором запущен пул приложения bpm'online (рис. 6).

Рис. 6. — Прикрепление к рабочему процессу IIS

ВАЖНО

Название рабочего процесса может различаться в зависимости от конфигурации используемого сервера IIS. Для полнофункционального IIS Web Server процесс называется w3wp.exe, для IIS Express — iisexpress.exe.

По умолчанию рабочий процесс IIS запущен под учетной записью, имя которой совпадает с именем пула приложения. Чтобы отобразить процессы всех пользователей, а не только текущего, необходимо установить признак [Show processes from all users] (рис. 6).

После прикрепления к процессу IIS можно приступать к отладке. Для этого нужно открыть файл с нужным исходным кодом и установить точку останова (рис. 7).

Рис. 7. — Точка останова в конструкторе объекта [Контрагент]

Как только будет задействован метод, на котором была установлена точка останова, программа будет остановлена и можно будет просмотреть текущее состояние переменных (рис. 8).

Рис. 8. — Прерывание выполнения программы на точке останова

Возможные проблемы при отладке

После прикрепления к процессу IIS возможна ситуация, когда символ точки останова отображается в виде белого круга, ограниченного красной окружностью. Такая точка останова является неактивной и прерывания выполнения приложения на ней не произойдет. При наведении курсора на символ неактивной точки останова появится подсказка, уведомляющая о проблеме (рис. 9).

Рис. 9. — Неактивная точка останова. Не загружена символьная информация

Если подсказка содержит сообщение о том, что не была загружена символьная информация (рис. 8), то для решения проблемы необходимо:

  1. Завершить выполнение отладки (Debug > Stop Debugging).
  2. Закрыть файл с исходным кодом, для которого выполняется отладка.
  3. В разделе [Конфигурация] приложения выполнить действие [Компилировать все] ([Compile all items]) (рис. 1).
  4. Во время выполнения компиляции и перевыгрузки файлов с исходными кодами прикрепиться к процессу IIS заново
  5. После выполнения компиляции переоткрыть файл с исходным кодом, для которого выполняется отладка.

К СВЕДЕНИЮ

В некоторых случаях может помочь повторная компиляция без открепления и прикрепления к IIS.

После повторного открытия файла с исходным кодом может появиться сообщение о неединообразных символах конца строк (рис. 10).

Рис. 10. — Сообщение о неединообразных символах конца строк

Необходимо нажать кнопку [Нет] ([No])). Если согласиться с нормализацией символов (кнопка [Да] ([Yes])), то точка останова снова может стать неактивной. Причина проблемы отображается в подсказке — несоответствие версий файла (рис. 10). Также в подсказке отображены варианты решения проблемы.

Рис. 11. — Неактивная точка останова. Несоответствие версий файла

 

 

 

 

© Terrasoft 2002-2019.

Был ли данный материал полезен?

Как можно улучшить эту статью?