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


Отладка службы облачных служб Azure (расширенная поддержка) в Visual Studio

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

Необходимые условия

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

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

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

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

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

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

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

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

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

    Заметка

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

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

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

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

  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. Выполните обычные действия, описанные в облачных служб (расширенная поддержка), но установите флажок Включить удаленный рабочий стол для всех ролей.

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

  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. Не забудьте запустить от имени администратора.

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

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

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

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

Заметка

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

  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. Выберите среду промежуточного и конфигурацию отладки.

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

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

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

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

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

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

  8. Выберите Роли и инстанции в левой области, а затем выберите роль, которую вы хотите отладить удаленно.

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

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

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

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

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

    скриншот, демонстрирующий, как msvsmon.exe прослушивает подключения.

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

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

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

Заметка

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

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

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

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

  4. Установите для подключения к Автоматическое.

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

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

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

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

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

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

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

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

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

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

Заметка

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

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

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

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

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

    снимок экрана: диалоговое окно

    Заметка

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

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

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

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

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

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

Отладка виртуальных машин Azure

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

Заметка

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

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

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

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

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

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

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

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

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

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

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

    диалоговое окно выбора типа кода

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

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

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

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

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

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

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

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

    диалоговое окно создания ASP.NET веб-проекта

    Заметка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    диалоговое окно выбора типа кода

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