Я уверен, что за годы работы с SharePoint вам приходилось заниматься отладкой кода. Если нет, то вы много потеряли. Хотя решения SharePoint и используют преимущества платформы. NET, их отладка и выявление мелких ошибок кода иногда непростая задача. Средства отладки зависят от того, что вы разрабатываете. Для разных типов кода существуют различные инструменты. Некоторые из них перечислены в приведенной таблице.

 

Инструменты для отладки кода

 

Как видно из таблицы, для отладки кода на стороне клиента можно использовать любой инструмент, способный проверять загрузку страницы на клиенте или перехватывать запросы. Однако на стороне сервера код требует полного цикла отладки с использованием интегрированной среды разработки (IDE) с возможностью пошагового выполнения кода.

При отладке разрабатываемых решений SharePoint знание, к какому процессу они присоединяются, не менее важно, чем код, который пишется. Например, создание веб-части для SharePoint означает необходимость присоединения к процессу w3wp.exe или IIS, тогда как задание таймера SharePoint в рамках w3wp.exe недоступно, поскольку работает в привязке к процессу owstimer.exe для SharePoint.

В частности, при отладке задания таймера SharePoint требуется выполнить перечисленные ниже шаги (см. экран 1).

 

Шаги для настройки отладки кода
Экран 1. Шаги для настройки отладки кода

 

1. Сгенерировать код и развернуть его.

2. Скопировать отладочные символы на сервер, на котором выполняется отладка, в папку Microsoft.NET:

C:\Windows\Microsoft.NET\assembly\
   GAC_MSIL\Sample.

3. Перезапустить службу времени Share­Point.

Теперь из Visual Studio можно подключиться к службе owstimer.exe и начать отладку как при использовании варианта w3wp.exe (см. экран 2).

 

Отладка службы
Экран 2. Отладка службы

 

После подключения запускаем задание таймера SharePoint и проходим код Visual Studio поэтапно, строка за строкой, через заданные точки отладки.

При использовании нескольких сред для разработки и тестирования отладка может стать затруднительной, поскольку в этом случае потребуется установка Visual Studio внутри ферм SharePoint. На этапе разработки в этом нет ничего страшного, но едва ли вам захочется устанавливать приложения такого рода в тестовой или рабочей среде. К счастью, разработчики Microsoft уже давно это осознали и создали «средства и агенты удаленной отладки». Чтобы воспользоваться удаленной отладкой, загрузите версию отладчика в соответствии со своей версией Visual Studio:

  • Visual Studio 2013: https://msdn.microsoft.com/en-us/library/y7f5zaaa (v=vs.120).aspx;
  • Visual Studio 2015: https://msdn.microsoft.com/en-us/library/y7f5zaaa(v=vs.140).aspx.

Загрузив отладчик, скопируйте его на серверы SharePoint по мере необходимости и запустите программу установки. Например, если используется Visual Studio 2015, выбираем вариант, показанный на экране 3.

 

Выбор программы удаленной отладки
Экран 3. Выбор программы удаленной отладки

 

После загрузки и копирования на серверы запустите программу установки и выполните шаги, показанные на экране 4.

 

Шаги программы установки
Экран 4. Шаги программы установки

 

Установив отладчик, из главного меню запустите мастер настройки (см. экран 5).

 

Запуск мастера настройки
Экран 5. Запуск мастера настройки

 

Мастер настройки запускается для компьютера, на котором вы работаете, чтобы он стал доступным для данного сервера. В ходе настройки создается учетная запись с правом регистрации в качестве службы (см. экран 6).

 

Указание учетной записи для отладки
Экран 6. Указание учетной записи для отладки

 

В моем примере указана учетная запись служб фермы SharePoint, но это может быть и другая, специально выбранная учетная запись. Далее необходимо назначить правила брандмауэра для службы отладки (см. экран 7).

 

Задание правил брандмауэра для службы отладки
Экран 7. Задание правил брандмауэра для службы отладки

 

Теперь мы можем удаленно подключиться к серверу из области выбора варианта отладки Visual Studio, указав имя сервера, где установлена служба отладчика.

Сделав выбор, приступаем к отладке кода точно так же, как при тестировании на одном сервере. Это удобный способ отладки кода на других серверах. Отладчик также позволяет получить доступ к любой службе, находящейся на другом сервере.

Возможности отладки кода SharePoint не ограничиваются средствами Visual Studio. Отладку можно осуществлять и с помощью других инструментов, таких как отладчик WinDbg, позволяющий внедряться в основной код. Это не дает возможности пошагового выполнения кода, но позволяет анализировать содержимое аварийного дампа или просто просматривать консольные команды, добавленные в код. Загрузить WinDbg можно по адресу: https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit.

Данный инструмент очень полезен не только для отладки кода; чтобы заставить его работать, установите большую часть компонентов пакета Windows SDK. Когда они будут установлены и готовы к работе, создайте дамп процесса w3wp.exe, для чего откройте диспетчер задач и в меню, открываемом правым щелчком на процессе w3wp.exe, выберите «Создать файл дампа» (см. экран 8).

 

Создание файла дампа
Экран 8. Создание файла дампа

Загрузите файл дампа в WinDdg для отладки и анализа. По-прежнему актуальной демонстрацией сказанного выше является написанная несколько лет назад статья Кирка Эванса из Microsoft, с которой можно ознакомиться по адресу: https://blogs.msdn.microsoft.com/kaevans/2011/04/11/intro-to-windbg-for-net-developers/.

Как мы видим, для отладки решений SharePoint можно применять собственные инструменты на стороне клиента и Visual Studio, а также средства отладки Windows на стороне сервера. Самое главное — определить, что больше подходит для вашей организации.