Отладка интерактивных приложений ASP.NET Azure с использованием Snapshot Debugger

Область применения:yesVisual StudionoVisual Studio для Mac noVisual Studio Code

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

Точки моментальных снимков и точки ведения журнала похожи на точки останова, но в отличие от точек останова, точки моментальных снимков не приостанавливают работу приложения при выполненной строке. Как правило, создание моментального снимка в точке прикрепления занимает 10–20 мс.

В этом руководстве рассмотрены следующие задачи:

  • запуск Snapshot Debugger;
  • задание точки моментальных снимков и просмотр моментального снимка;
  • задание точки ведения журнала.

Предварительные требования

  • Расширение Snapshot Debugger доступно, начиная с Visual Studio 2017 Enterprise версии 15.5 с рабочей нагрузкой разработки Azure. (На вкладке Отдельные компоненты его можно найти в разделе Отладка и тестирование>Отладчик моментальных снимков.)

    При необходимости установите Visual Studio 2019. Если вы выполняете обновление предыдущей установки Visual Studio, запустите Visual Studio Installer и проверьте компонент Snapshot Debugger в ASP.NET и рабочей нагрузке веб-разработки.

  • План Службы приложений Azure "Базовый" или выше.

  • Коллекция моментальных снимков доступна для следующих веб-приложений, выполняющихся в службе приложений Azure App:

    • Приложения ASP.NET, выполняющиеся на платформе .NET Framework 4.6.1 или более поздней версии.
    • Приложения ASP.NET Core, выполняющиеся на платформе .NET Core 2.0 или более поздней версии под управлением Windows.

Открытие проекта и запуск Snapshot Debugger

  1. Откройте проект, моментальный снимок которого хотите отладить.

    Важно!

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

  2. Выберите Отладка> Подключить Snapshot Debugger.... Выберите Службу приложений Azure, в которой развернут ваш проект, и учетную запись хранения Azure, а затем нажмите Подключить. Snapshot Debugger поддерживает Службу Azure Kubernetes, а также виртуальные машины Azure и масштабируемые наборы виртуальных машин.

    Запуск отладчика моментальных снимков из меню

    Выбор ресурса Azure

    Важно!

    При первом выборе функции Подключить Snapshot Debugger вам будет предложено установить расширение сайта Snapshot Debugger в Службу приложений Azure. Для этой установки требуется перезапуск Службы приложений Azure.

    Примечание

    (Visual Studio 2019 версии 16.2 и выше) В Snapshot Debugger включена поддержка облака Azure. Убедитесь, что выбранные ресурс Azure и учетная запись хранения Azure находятся в одном и том же облаке. Обратитесь к администратору Azure, если у вас возникли вопросы о конфигурациях предприятия для обеспечения соответствия требованиям Azure.

    Visual Studio теперь находится в режиме отладки моментальных снимков. Режим отладки моментальных снимков

    Окно Модули показывает, когда все модули для Службы приложений Azure загружены (выберите Отладка > Windows > Модули, чтобы открыть это окно).

    Проверка окна модулей

Настройка точки моментальных снимков

  1. В редакторе кода щелкните поле слева рядом с нужной строкой кода, чтобы задать точку моментальных снимков. Убедитесь, что будет выполняться именно этот код.

    Настройка точки моментальных снимков

  2. Нажмите кнопку Запустить коллекцию, чтобы включить точку моментальных снимков.

    Включение точки моментальных снимков

    Совет

    Вы не можете выполнять шаги при просмотре снимка, но можете поместить несколько точек моментальных снимков в свой код, чтобы следить за выполнением в разных строках кода. При наличии нескольких точек моментальных снимков в коде Snapshot Debugger обеспечивает доступность соответствующих моментальных снимков из того же сеанса конечного пользователя. Snapshot Debugger делает это, даже если в ваше приложение попадает много пользователей.

Сделайте моментальный снимок

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

Проверка данных моментальных снимков

  1. При выполнении точки моментальных снимков в окне "Средства диагностики" появляется снимок. Чтобы открыть это окно, выберите Отладка > Windows > Показать средства диагностики.

    Открытие точки моментальных снимков

  2. Дважды щелкните точку моментальных снимков, чтобы открыть снимок в редакторе кода.

    Проверка данных моментальных снимков

    В этом представлении вы можете навести курсор на переменные для просмотра советов, используя окна Локальные элементы, Контрольные значения и Стек вызовов, а также оценки выражений.

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

Вы можете также добавить дополнительные точки моментальных снимков в приложение и включить их с помощью кнопки Обновить коллекцию.

Требуется помощь? См. статьи Устранение неполадок и известные проблемы для отладки моментальных снимков в Visual Studio и Часто задаваемые вопросы по отладке моментальных снимков в Visual Studio.

Настройка условной точки моментальных снимков

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

Создание условной точки моментальных снимков

  1. Щелкните правой кнопкой мыши значок точки прикрепления (полая сфера) и выберите пункт "Параметры".

    Выберите параметры

  2. В окне параметров точки моментальных снимков введите выражение.

    Введение выражения

    На предыдущей иллюстрации снимок сделан только для точки моментальных снимков при visitor.FirstName == "Dan".

Задание точки ведения журнала

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

Создание точки ведения журнала

  1. Щелкните правой кнопкой мыши значок точки моментальных снимков (синий шестиугольник) и выберите Параметры.

  2. В окне параметров точки моментальных снимков выберите Действия.

    Создание точки ведения журнала

  3. В поле Сообщение вы можете ввести новое сообщение журнала, которое хотите зарегистрировать. Вы также можете оценить переменные в сообщении журнала, поместив их в фигурные скобки.

    При выборе Отправить в окно вывода, когда достигнута точка ведения журнала, сообщение будет отображено в окне "Средства диагностики".

    Данные точки ведения журнала в окне

    При выборе Отправить в журнал приложений, когда будет достигнута точка ведения журнала, сообщение будет отображено в любом месте, из которого вы сможете просмотреть сообщения из System.Diagnostics.Trace (или ILogger в .NET Core), например App Insights.

Следующие шаги

В этом руководстве вы узнали, как использовать Snapshot Debugger для Служб приложений. Вы можете прочитать дополнительные сведения об этой функции.