Отладка облачной службы Azure в Visual Studio

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

Необходимые компоненты

Отладка облачной службы на локальном компьютере

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

Эмулятор имитирует службу вычислений Azure и выполняется в локальной среде, благодаря чему можно осуществить тестирование и отладку облачной службы перед ее развертыванием. Эмулятор обрабатывает жизненный цикл экземпляров ролей и предоставляет доступ к имитируемым ресурсам, таким как локальное хранилище. При отладке или запуске службы в системе Visual Studio она автоматически запускает эмулятор в качестве фонового приложения, а затем выполняет развертывание службы в эмуляторе. Вы можете использовать эмулятор для просмотра службы, запущенной в локальной среде. Можно запустить полную версию или экспресс-версию эмулятора. Ознакомьтесь с разделом Использование эмулятора Emulator Express для запуска и отладки облачной службы в локальной среде.

Порядок отладки облачной службы на локальном компьютере

  1. В строке меню выберите "Отладка запуска отладки>", чтобы запустить проект облачной службы Azure. Вы также можете нажать клавишу F5. Появится сообщение о запуске эмулятора вычислений. На запуск эмулятора указывает значок в области уведомлений.

    Эмулятор Azure в области уведомлений

  2. Откройте пользовательский интерфейс эмулятора вычислений. Для этого в области уведомлений правой кнопкой мыши щелкните значок Azure и выберите пункт Show Compute Emulator UI (Показать пользовательский интерфейс эмулятора вычислений).

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

  3. Пошаговые шаги по приложению, выбрав команды в меню отладки и установив точки останова в коде. По мере работы с приложением в отладчике в областях будет отображаться текущее состояние приложения. При остановке отладки развертывание приложения удаляется. Если приложение включает в себя веб-роль и было задано свойство Startup action для запуска веб-браузера, то Visual Studio запускает веб-приложение в браузере. Если вы изменили количество экземпляров роли в конфигурации службы, то необходимо остановить облачную службу и затем перезапустить отладку, чтобы можно было отлаживать эти новые экземпляры роли.

    Примечание.

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

Отладка облачной службы в Azure

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

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

Примечание.

При публикации облачной службы из Visual Studio можно включить IntelliTrace для всех ролей в этой службе, предназначенных для платформа .NET Framework 4 или платформа .NET Framework 4.x. С помощью IntelliTrace можно изучить события, произошедшие в экземпляре роли в прошлом, и воспроизвести контекст за тот период времени. Ознакомьтесь со статьями Отладка опубликованной облачной службы с помощью IntelliTrace и Visual Studio и Использование IntelliTrace.

Включение удаленной отладки для облачной службы (расширенная поддержка)

  1. Добавьте конечную точку в serviceDefinition.csdef для порта msvsmon по умолчанию. Для Visual Studio 2019 это 4024.

    <Endpoints>
       <InputEndpoint name="RemoteDebug" protocol="tcp" port="4024" localPort="4024" />
    </Endpoints>
    

    Примечание.

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

  2. Откройте контекстное меню проекта Azure и выберите пункт Опубликовать.

  3. Выберите элемент Промежуточная среда и конфигурацию Отладка.

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

    Выберите конфигурацию отладки.

  4. Выполните обычные действия, описанные в Облачные службы (расширенная поддержка), но выберите пункт "Включить удаленный рабочий стол" для всех ролей проверка box.

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

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

  6. Войдите в портал Azure и перейдите в облачную службу (расширенную поддержку), которую требуется выполнить отладку.

  7. Выберите роли и экземпляры в области слева, а затем выберите нужную роль удаленной отладки.

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

    Снимок экрана: всплывающее окно экземпляра роли с параметром Подключение.

  9. На виртуальной машине Удаленной машины Azure установите средства удаленной отладки Visual Studio 2019, как описано в удаленной отладке.

  10. На рабочем столе на виртуальной машине выполните команду D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe. Не забудьте запустить как Администратор istrator.

  11. Примите запросы на разрешение доступа через брандмауэр. Должно появиться сообщение, указывающее, что msvsmon.exe начал прослушивать подключения.

  12. В портал Azure откройте группу ресурсов и получите общедоступный IP-адрес облачной службы (расширенная поддержка).

    Снимок экрана, показывающий, где найти общедоступный IP-адрес облачной службы.

Подключение отладчика к облачной службе (расширенная поддержка) в Azure

Примечание.

По возможности следует выполнить отладку с конфигурацией отладки, выбранной в процессе публикации, но при отладке конфигурации выпуска в Visual Studio используйте ctrl+Q для поиска "Просто мой код" и un проверка Включить только мой код в общем отладчике>параметров>инструментов.> Сборки выпуска оптимизированы, поэтому не считаются "Мой код".

  1. Выберите Отладка>Подключиться к процессу (или нажмите сочетание клавиш CTRL+ALT+P).

  2. Сохраните тип подключения по умолчанию.

  3. Введите целевой объект подключения, используя IP-адрес и порт: {ipaddress}:4024

  4. Присвойте параметру "Подключиться" взначение "Автоматически".

  5. Войдите, используя те же учетные данные, что и пользователь удаленного рабочего стола.

  6. Выберите "Показать процесс" для всех пользователей. Если вы выполняете отладку рабочей роли, подключитесь к WaWorkerHost.exe; если выполняется отладка веб-роли, подключитесь к процессу w3wp.exe; для роли веб-API это WaIISHost.exe.

  7. Задайте точки останова (перейдите к строке и нажмите клавишу F9), откройте общедоступный URL-адрес сайта и воспроизводите сценарий для отладки.

Включение удаленной отладки для облачной службы (расширенная поддержка)

  1. Добавьте конечную точку в serviceDefinition.csdef для порта msvsmon по умолчанию. Для Visual Studio 2022 это 4026; Для Visual Studio 2019 это 4024.

    <Endpoints>
       <InputEndpoint name="RemoteDebug" protocol="tcp" port="4026" localPort="4026" />
    </Endpoints>
    

    Примечание.

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

  2. Если вы нацелены на .NET 4.8, откройте файл ServiceConfiguration.Cloud.cscfg и проверка значение osFamily атрибута в ServiceConfiguration элементе при публикации Облачные службы (расширенная поддержка). Для проекта .NET 4.8 используйте osFamily="7".

  3. Откройте контекстное меню проекта Azure и выберите пункт Опубликовать.

  4. Выберите элемент Промежуточная среда и конфигурацию Отладка.

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

    Выберите конфигурацию отладки

  5. Выполните обычные действия, описанные в Облачные службы (расширенная поддержка), но выберите пункт "Включить удаленный рабочий стол" для всех ролей проверка box.

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

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

  7. Войдите в портал Azure и перейдите в облачную службу (расширенную поддержку), которую требуется выполнить отладку.

  8. Выберите роли и экземпляры в области слева, а затем выберите нужную роль удаленной отладки.

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

    Снимок экрана: всплывающее окно экземпляра роли с параметром Подключение.

  10. На виртуальной машине Удаленной машины Azure установите средства удаленной отладки Visual Studio 2022, как описано в удаленной отладке.

  11. На рабочем столе на виртуальной машине выполните команду D:\Program Files\Microsoft Visual Studio 17.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe. Не забудьте запустить как Администратор istrator.

  12. Примите запросы на разрешение доступа через брандмауэр. Должно появиться сообщение, указывающее, что msvsmon.exe начал прослушивать подключения.

    Снимок экрана: msvsmon.exe прослушивает подключения.

  13. В портал Azure откройте группу ресурсов и получите общедоступный IP-адрес облачной службы (расширенная поддержка).

    Снимок экрана, показывающий, где найти общедоступный IP-адрес облачной службы.

Подключение отладчика к облачной службе (расширенная поддержка) в Azure

Примечание.

По возможности следует выполнить отладку с конфигурацией отладки, выбранной в процессе публикации, но при отладке конфигурации выпуска в Visual Studio используйте ctrl+Q для поиска "Просто мой код" и un проверка Включить только мой код в общем отладчике>параметров>инструментов.> Сборки выпуска оптимизированы, поэтому не считаются "Мой код".

  1. Выберите Отладка>Подключиться к процессу (или нажмите сочетание клавиш CTRL+ALT+P).

  2. Сохраните тип подключения по умолчанию.

  3. Введите целевой объект подключения, используя IP-адрес и порт: {ipaddress}:4026

  4. Присвойте параметру "Подключиться" взначение "Автоматически".

  5. Войдите, используя те же учетные данные, что и пользователь удаленного рабочего стола.

  6. Выберите "Показать процесс" для всех пользователей. Если вы выполняете отладку рабочей роли, подключитесь к WaWorkerHost.exe; если выполняется отладка веб-роли, подключитесь к процессу w3wp.exe; для роли веб-API это WaIISHost.exe.

  7. Задайте точки останова (перейдите к строке и нажмите клавишу F9), откройте общедоступный URL-адрес сайта и воспроизводите сценарий для отладки.

Отладка облачной службы в Azure (классическая модель)

Чтобы выполнить отладку облачной службы с удаленного компьютера, необходимо явно включить эту функцию при развертывании облачной службы, чтобы необходимые службы (например, msvsmon.exe, например) устанавливаются на виртуальных машинах, на которых выполняются экземпляры роли. Если вы не включили удаленную отладку при публикации службы, необходимо повторно опубликовать эту службу с включенной удаленной отладкой.

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

Примечание.

При публикации облачной службы из Visual Studio для всех ролей в службе, которые используют .NET Framework 4 или .NET Framework 4.5, можно активировать IntelliTrace. С помощью IntelliTrace можно изучить события, произошедшие в экземпляре роли в прошлом, и воспроизвести контекст за тот период времени. Ознакомьтесь со статьями Отладка опубликованной облачной службы с помощью IntelliTrace и Visual Studio и Использование IntelliTrace.

Включение удаленной отладки для облачной службы (классическая модель)

  1. Откройте контекстное меню проекта Azure и выберите пункт Опубликовать.

  2. Выберите элемент Промежуточная среда и конфигурацию Отладка.

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

    Выберите конфигурацию отладки

  3. Выполните обычные действия, но выберите "Включить удаленный отладчик" для всех ролей проверка box на вкладке "Дополнительное Параметры".

    Конфигурация отладки

Подключение отладчика к облачной службе в Azure (классическая модель)

  1. В обозревателе серверов разверните узел своей облачной службы.

  2. Откройте контекстное меню роли или экземпляра роли, к которому требуется присоединить отладчик, и выберите Присоединить отладчик.

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

    Присоединить отладчик

  3. После подключения отладчика к экземпляру выполняйте отладку в обычном режиме. Отладчик автоматически подключается к соответствующему хост-процессу для вашей роли. В зависимости от того, что представляет собой эта роль, отладчик подключается к w3wp.exe, WaWorkerHost.exe или WaIISHost.exe. Чтобы проверить процесс, к которому подключен отладчик, разверните узел экземпляра в обозревателе серверов. Дополнительные сведения о процессах Azure см. в статье Архитектура ролей Azure.

    Диалоговое окно

  4. Чтобы определить процессы, к которым подключен отладчик, в строке меню выберите "Отладка>процессов Windows>" и откройте диалоговое окно "Процессы". (Сочетание клавиш: CTRL + ALT + Z) Чтобы отключить определенный процесс, откройте его контекстное меню и выберите пункт Отсоединить процесс. Или перейдите к узлу экземпляра в обозревателе сервера, найдите процесс, откройте его контекстное меню и выберите пункт Отсоединить процесс.

    Отладить процессы

Предупреждение

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

Чтобы отключить отладчик от всех процессов в экземпляре или роли, откройте контекстное меню роли или экземпляра, для которых выполняется отладка, и выберите пункт Отсоединить отладчик.

Ограничения удаленной отладки в Azure

Удаленная отладка имеет следующие ограничения:

  • При включенной удаленной отладке нельзя опубликовать облачную службу, в которой любая роль содержит более 25 экземпляров.

  • Отладчик использует порты 30400–30424, 31400–31424 и 32400–32424. Если вы попытаетесь использовать любой из этих портов, то не сможете опубликовать службу, а в журнале действий для Azure появится одно из следующих сообщений об ошибке:

    • Ошибка проверки CSCFG-файла на основе CSDEF-файла. Диапазон зарезервированных портов для конечной точки Microsoft.WindowsAzure.PlugIns.RemoteDebugger.Connector роли "роль" перекрывается с уже определенным портом или диапазоном.
    • Ошибка выделения. Повторите попытку позже, попробуйте уменьшить размер виртуальной машины или количество экземпляров ролей или попытаться развернуть в другом регионе.

Отладка службы приложение Azure

Программы, выполняемые в службе приложение Azure, можно отлаживать с помощью диалогового окна "Подключение к процессу" в Visual Studio.

Примечание.

Это доступно только для службы приложение Azure начиная с Visual Studio 2022 17.1.

Отладка службы Windows приложение Azure

  1. В разделе "Отладка" выберите "Присоединить к процессу".

  2. Измените тип Подключение ion на Службы Microsoft приложение Azure, а затем выберите Find...

  3. В открывшемся диалоговом окне выберите имя подписки.

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

    Примечание.

    Необходимо войти в учетную запись Майкрософт с доступом к подписке, содержащей службу приложение Azure.

  4. Отфильтруйте представление по группе ресурсов или типу ресурсов или по имени.

  5. Затем выберите Служба приложений, которые вы хотите отладить, а затем нажмите кнопку "ОК".

    Это обеспечивает удаленную отладку в Служба приложений и отображает список доступных процессов для присоединения.

    Снимок экрана: окно

  6. Выберите процесс, к которому нужно присоединиться, а затем нажмите кнопку "Присоединить ", чтобы начать отладку.

Отладка Azure Виртуальные машины

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

Примечание.

Виртуальные машины, созданные стеком Azure Resource Manager, можно удаленно отлаживать с помощью облачной Обозреватель в Visual Studio 2019. Дополнительные сведения см. в статье Управление ресурсами Azure с помощью Cloud Explorer.

Порядок отладки виртуальной машины Azure

  1. В обозревателе серверов разверните узел "Виртуальные машины" и выберите узел той виртуальной машины, для которой необходимо выполнить отладку.

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

    Azure установит расширение для удаленной отладки на виртуальную машину, что позволит выполнять отладку.

    Команда включения отладки в виртуальной машине

    Журнал действий Azure

  3. По окончании установки расширения для удаленной отладки откройте контекстное меню виртуальной машины и выберите пункт Присоединить отладчик...

    Azure получает список процессов на виртуальной машине и отображает их в диалоговом окне "Присоединение к процессу ".

    Команда подключения отладчика

  4. В диалоговом окне Присоединение к процессу нажмите кнопку Выбрать и выберите только те типы кода, для которых требуется отладка. Вы можете осуществлять отладку 32-разрядного или 64-разрядного управляемого и/или машинного кода.

    Диалоговое окно

  5. Выберите процессы, которые нужно выполнить отладку на виртуальной машине, а затем нажмите кнопку "Подключить". Например, можно выбрать процесс w3wp.exe, если требуется выполнить отладку веб-приложения на виртуальной машине. Дополнительные сведения см. в статьях Отладка одного или нескольких процессов в Visual Studio и Архитектура ролей Azure.

Создание веб-проекта и виртуальной машины для отладки

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

Проекты Visual Studio ASP.NET позволяют создать удобную виртуальную машину, которую можно использовать для тестирования приложений. Эта виртуальная машина включает в себя часто используемые конечные точки, такие как PowerShell, удаленный рабочий стол и WebDeploy.

Порядок создания веб-проекта и виртуальной машины для отладки

  1. Создайте в Visual Studio новое веб-приложение ASP.NET.

  2. В диалоговом окне "Новый ASP.NET проект" в разделе Azure выберите виртуальную машину в раскрывающемся списке. Оставьте флажок "Создать удаленные ресурсы" проверка box. Нажмите кнопку ОК , чтобы продолжить.

    Откроется диалоговое окно Создание виртуальной машины в Azure .

    Диалоговое окно

    Примечание.

    Если вы еще не выполнили вход, появится запрос на вход в вашу учетную запись Azure.

  3. Выберите различные параметры виртуальной машины и нажмите кнопку "ОК". Дополнительные сведения см. в статье Виртуальные машины.

    Имя, которое вы указали в поле DNS-имени, будет использоваться как имя виртуальной машины.

    Диалоговое окно

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

  4. После полной настройки виртуальной машины выберите узел виртуальной машины в сервере Обозреватель.

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

    Azure устанавливает расширение удаленной отладки в виртуальной машине для включения отладки.

    Команда включения отладки в виртуальной машине

    Журнал действий Azure

  6. Опубликуйте проект в соответствии с инструкциями из статьи Развертывание веб-проекта с помощью публикации одним щелчком в Visual Studio. Так как вы хотите осуществлять отладку на виртуальной машине, в мастере Публикация веб-сайта на странице Параметры выберите конфигурацию Отладка. Это позволяет просматривать символы кода во время отладки.

    Параметры публикации

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

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

    Azure получает список процессов на виртуальной машине и отображает их в диалоговом окне "Присоединение к процессу ".

    Команда подключения отладчика

  9. В диалоговом окне Присоединение к процессу нажмите кнопку Выбрать и выберите только те типы кода, для которых требуется отладка. Вы можете осуществлять отладку 32-разрядного или 64-разрядного управляемого и/или машинного кода.

    Диалоговое окно

  10. Выберите процессы, которые нужно выполнить отладку на виртуальной машине, а затем нажмите кнопку "Подключить". Например, можно выбрать процесс w3wp.exe, если требуется выполнить отладку веб-приложения на виртуальной машине. Дополнительные сведения см. в статье Отладка одного или нескольких процессов в Visual Studio.