Упражнение. Подключение отладчика Visual Studio к веб-приложению Службы приложений
На этом этапе приложение развертывается в Azure, но оно не работает правильно. Приложение по-прежнему работает локально, поэтому трудно определить именно то, что вызывает проблему без дальнейшего расследования. Visual Studio легко решает эту проблему, подключив отладчик к процессу Службы приложений за пределами Azure. Это упражнение позволяет отлаживать приложение, как если бы оно выполнялось локально.
Примечание.
Прежде чем пытаться подключить отладчик, следует убедиться, что состояние локального кода отражает то, что было развернуто в Azure. Это гарантирует, что локальные файлы символов и исходный код соответствуют развернутой версии приложения. В реальном приложении, если вы используете Git для управления проектом, необходимо проверить ту же фиксацию или выпуск, который был развернут.
Настройка параметров отладки
Прежде чем отладить приложение в Azure, выполните следующие действия в Visual Studio, чтобы убедиться в успешном выполнении.
Сначала убедитесь, что вы успешно создали проект по крайней мере один раз. Успешная сборка гарантирует, что исходный код и все необходимые скомпилированные файлы готовы к работе. Если приложение выполняется локально, обязательно остановите его.
Перейдите в > отладки" в верхней части меню Visual Studio. Убедитесь, что флажок "Включить только мой код " снят, а затем нажмите кнопку "ОК".
Изменение этого параметра позволяет Visual Studio отлаживать оптимизированный код, развернутый в Azure, с помощью необходимых файлов символов из локальной
bin
папки. Файлы символов используются отладчиком в качестве моста между скомпилированным кодом, кодом выполнения и исходным кодом в Visual Studio, поэтому важно, чтобы локальный исходный код соответствовал приложению развертывания.
Подключение отладчика к Службе приложений
В главном меню в верхней части Visual Studio выберите "Отладить > подключение", чтобы открыть соответствующее диалоговое окно. С помощью этого окна можно подключиться и подключиться к разным целевым объектам. В этом случае вы будете подключаться к экземпляру Службы приложений, созданному на предыдущем шаге.
Выберите раскрывающийся список "Тип подключения" и выберите параметр "Службы Microsoft приложение Azure".
Нажмите кнопку "Найти... рядом с полем "Целевой объект подключения", чтобы открыть диалоговое окно, позволяющее просматривать подписки Azure и службы приложений.
Найдите и выберите
GitHubBrowser123
Служба приложений, созданные на предыдущем шаге, и нажмите кнопку "ОК".Процесс
w3wp.exe
должен отображаться в списке доступных процессов, к которым необходимо подключиться, который является основным процессом службы приложение Azure, в которой размещено развернутое приложение. Выберите этот процесс, а затем нажмите кнопку "Присоединить " в правом нижнем углу, чтобы подключить отладчик Visual Studio.В
Index.cshtml.cs
, перейдите к первой строке метода и задайте точку остановаOnPost
в этом методе, щелкнув левое поле (или щелкните правой кнопкой мыши и выберите точку>останова вставить точку останова).Метод
OnPost
внутриIndex.cshtml.cs
обрабатывает большую часть логики приложения.При необходимости можно также проверить, загрузил ли Visual Studio файлы символов для сеанса отладки. Перейдите в раздел Отладка > Windows> Модули, чтобы открыть окно модулей. В этом окне должно быть указано, что файлы символов успешно загружены для файла браузера
.dll
GitHub после предшествующего внесения изменений конфигурации кода.
Устранение ошибки
После загрузки символов можно выполнить отладку размещенного приложения Azure в том же порядке, что и локально.
В Visual Studio установите точку останова, перейдите в приложение в браузере, введите значение dotnet в поле поиска приложения, а затем нажмите кнопку "Отправить". Visual Studio достигнет точки останова
OnPost
внутри метода. Первый раз может занять некоторое время для синхронизации. Код попытается получитьGitHubUrl
значение с помощьюIConfiguration
службы. По умолчанию служба конфигурации загружает значения изappsettings.json
файла в приложении.Используйте кнопку "Шаг над" в элементах управления отладки Visual Studio (или нажмите клавишу F10), чтобы перейти к строке кода, создающей
searchUrl
объект. Наведите указатель мыши на переменнуюgithubUrl
, чтобы обнаружить, что значение в настоящее время равно NULL. Этот код хорошо работал локально, почему значение в Azure равно NULL?Откройте файл
appsettings.json
для более подробного изучения. Существует несколько параметров конфигурации в этом файле вокруг ведения журнала, но неGitHubUrl
найдено значения.Откройте файл
appsettings.Development.json
.При настройке примера проекта вы обновили параметры конфигурации в
appsettings.Development.json
. Этот файл содержит конфигурации, которые будут применяться только во время разработки, а не при развертывании в Azure. Ошибки часто возникают также в том случае, если вы забыли задать конфигурации для рабочей версии размещенного приложения в Azure.GitHubUrl
Скопируйте паруappsettings.Development.json
"ключ-значение" и вставьте ее в файл верхнего уровняappsettings.json
, чтобы два файла соответствовали. Новое значение конфигурации будет перемещаться вместе с ним в файлеappsettings.json
при повторном развертывании приложения в Azure.Файл
appsettings.json
должен выглядеть примерно так.Отсоедините отладчик от Служба приложений, нажав кнопку "Остановить" в верхней части Visual Studio, как и локальный сеанс отладки.
Чтобы повторно развернуть внесенные изменения, щелкните правой кнопкой мыши узел проекта в Обозреватель решений и снова выберите "Опубликовать".
На экране профиля публикации все исходные параметры развертывания по-прежнему установлены, поэтому снова выберите "Опубликовать " для повторного развертывания в Azure.
После завершения развертывания Visual Studio запустит браузер, чтобы снова отобразить приложение. Введите dotnet в форму поиска еще раз и нажмите клавишу ВВОД. Теперь список репозиториев загружается правильно.
Поздравляем! Вы успешно устранили ошибку в Службе приложений Azure с помощью Visual Studio.