Поделиться через


Отладка выполняемых в реальном времени ASP.NET приложений на виртуальных машинах Azure и масштабируемых наборах виртуальных машин Azure с помощью отладчика моментальных снимков.

Замечание

Отладка моментальных снимков устарела и больше не будет доступна в последних версиях Visual Studio 2022 и более поздних версиях. Хотя нет точной замены, существуют другие средства, которые могут обеспечить полезную диагностику:

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

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

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

  • Запустите отладчик создания моментальных снимков
  • Установка точки фиксации и просмотр моментального снимка
  • Установить точку журнала

Предпосылки

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

    Если оно еще не установлено, установите Visual Studio 2019 Enterprise.

  • Коллекция моментальных снимков доступна для следующих веб-приложений Виртуальных машин/Наборов масштабируемых виртуальных машин Azure.

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

    Замечание

    Visual Studio Enterprise, работающий в 32-разрядной версии Windows, не сможет просматривать моментальные снимки.

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

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

    Это важно

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

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

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

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

    Это важно

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

    Замечание

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

    Метаданные модулей изначально не будут активированы , перейдите к веб-приложению, а кнопка "Начать коллекцию " станет активной. Visual Studio теперь находится в режиме отладки моментальных снимков.

    Режим отладки моментальных снимков

    Замечание

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

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

    Проверка окна

Установить точку привязки

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

    Установка точки привязки

  2. Нажмите «Начать сбор», чтобы активировать точку привязки.

    Включите точку привязки

    Подсказка

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

Создание моментального снимка

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

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

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

    Откройте точку привязки

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

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

    В этом представлении можно навести указатель мыши на переменные для просмотра Подсказок данных, использовать Локальные, Наблюдения и окна стек вызова, а также оценивать выражения.

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

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

Нужна помощь? Ознакомьтесь со сведениями об устранении неполадок и известных проблемах и разделе часто задаваемых вопросов по отладке моментальных снимков.

Установить условную точку останова

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

Создать условную точку привязки

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

    Выбор параметров

  2. В окне настроек точки захвата введите выражение.

    Тип выражения

    На приведенном выше рисунке моментальный снимок делается только для контрольной точки, когда visitor.FirstName == "Dan".

Установить точку журнала

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

Создать точку журнала

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

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

    Создать точку логирования

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

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

    Данные о точке логирования в окне

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

Из этого руководства вы узнали, как использовать отладчик моментальных снимков для виртуальных машин Azure и масштабируемых наборов виртуальных машин Azure. Вы можете ознакомиться с дополнительными сведениями об этой функции.