Отладка приложений ASP.NET или ASP.NET Core в Visual Studio
Вы можете отлаживать приложения ASP.NET и ASP.NET Core в Visual Studio. Процесс отличается от ASP.NET и ASP.NET Core, а также от того, выполняется ли он на сервере IIS Express или локальном сервере IIS.
Заметка
Следующие шаги и параметры применяются только к отладке приложений на локальном сервере. Отладка приложений на удаленном сервере IIS использует присоединение к процессуи игнорирует эти параметры. Дополнительные сведения и инструкции по удаленной отладке ASP.NET и ASP.NET Core см. в удаленной отладке ASP.NET Core на удаленном компьютере IISи удаленной отладки службы приложений Azure.
Встроенные серверы Kestrel и IIS Express включены в Visual Studio. Kestrel — это сервер отладки по умолчанию для проектов ASP.NET Core и предварительно настроен. IIS Express — это сервер отладки по умолчанию для ASP.NET.
Встроенный сервер IIS Express входит в состав Visual Studio. IIS Express — это сервер отладки по умолчанию для ASP.NET и ASP.NET основных проектов и предварительно настроен. Это самый простой способ отладки и идеально подходит для первоначальной отладки и тестирования.
Для ASP.NET Core можно также выполнить отладку на веб-сервере Kestrel.
Предварительные требования для локального сервера IIS
Вы также можете выполнить отладку приложения ASP.NET или ASP.NET Core на локальном сервере IIS (версия 8.0 или более поздней версии), настроенном для запуска приложения. Чтобы выполнить отладку в локальных службах IIS, необходимо выполнить следующие требования:
Если они не установлены, установите ASP.NET и набор веб-разработки. (Повторно запустите установщик Visual Studio, выберите Изменитьи добавьте эту рабочую нагрузку.)
Запустите Visual Studio от имени администратора.
Установите и правильно настройте IIS с нужными версиями ASP.NET и (или) ASP.NET Core. Дополнительные сведения об использовании IIS с ASP.NET Core см. в Host ASP.NET Core на Windows сIIS. Сведения о ASP.NET см. в статье Установка служб IIS и модулей ASP.NET.
Убедитесь, что приложение выполняется в службах IIS и открывается в браузере.
Отладка приложений ASP.NET Core
Профиль по умолчанию с именем https или профиль на основе имени проекта может присутствовать, оба настроены для веб-сервера Kestrel. Если вы выполняете отладку на локальном IIS, убедитесь, что выполнены требования для локальной отладки IIS.
Выберите проект ASP.NET Core в обозревателе решений Visual Studio и щелкните значок свойствили нажмите клавиши ALT+ВВОДили щелкните правой кнопкой мыши и выберите Свойства.
Перейдите на вкладку Отладка и щелкните ссылку, чтобы открыть интерфейс Открытие профилей запуска отладки.
Пользовательский интерфейс, представленный, соответствует параметрам в файле
launchSettings.json
проекта. Дополнительные сведения об этом файле см. в разделе "Разработка иlaunchSettings.json
" в разделе Использование нескольких сред в ASP.NET Core.Выберите профиль для настройки отладки.
- Для Kestrel выберите профиль https или профиль с именем проекта.
- Для IIS Express выберите IIS Express в раскрывающемся списке.
- Для локального IIS выберите Новый и создайте новый профиль IIS.
Убедитесь, что выбран запуск браузера.
Убедитесь, что URL, URL приложенияи SSL URL приложения правильные.
URL-адрес указывает расположение URL-адреса узла для .NET Core или .NET 5+. Для профиля, названного в честь проекта (то есть, свойство commandName в
launchSettings.json
Project), сервер Kestrel прослушивает указанный порт. Для профиля IIS обычно это то же значение, что и URL-адрес приложения . Дополнительные сведения см. в разделе профиля запуска IIS в разделе Настройка проекта.URL-адрес приложения и URL-адрес SSL приложения указывают URL-адрес(а) приложения.
- Для профиля https свойство URL-адрес приложения обычно
https://localhost:7241;http://localhost:5175
. - Для профиля с именем проекта эти свойства обычно
http://localhost:5000
иhttps://localhost:5001
. - Для IIS Express URL-адрес SSL приложения обычно
https://localhost:44334
.
- Для профиля https свойство URL-адрес приложения обычно
В переменных окруженияудостоверьтесь, что ASPNETCORE_ENVIRONMENT присутствует со значением Development. Если нет, добавьте переменную.
Дополнительные сведения о переменных среды см. в средах.
Чтобы отладить приложение, в проекте установите точки останова для некоторых кодов. На панели инструментов Visual Studio убедитесь, что для конфигурации задано значение Отладка.
Чтобы начать отладку, выберите имя профиля на панели инструментов, например https, IIS Expressили <имя профиля IIS> на панели инструментов, выберите начать отладку из меню отладки или нажмите клавишу F5. Отладчик приостанавливается на точках останова. Если отладчик не может попасть в точки останова, см. раздел Устранение проблем с отладкой.
Отладка приложений ASP.NET Core
IIS Express — это значение по умолчанию и предварительно настроено. Если вы выполняете отладку в локальных службах IIS, убедитесь, что выполнены требования для отладки локальных служб IIS.
Выберите проект ASP.NET Core в обозревателе решений Visual Studio и щелкните значок свойствили нажмите клавиши ALT+ВВОДили щелкните правой кнопкой мыши и выберите Свойства.
Выберите вкладку Отладка.
В области свойств , рядом с профилем ,
- Для IIS Express выберите IIS Express в раскрывающемся списке.
- Для локального IIS выберите имя приложения из раскрывающегося списка или выберите Новый, создайте новое имя профиля и выберите ОК.
Рядом с Запусквыберите IIS Express или IIS в раскрывающемся списке.
Убедитесь, что выбран Запуск браузера.
В переменных средыубедитесь, что ASPNETCORE_ENVIRONMENT присутствует со значением Development. Если нет, выберите Добавить и добавьте его.
Используйте файл>сохранить выбранные элементы или CTRL+S для сохранения изменений.
Чтобы отладить приложение, в проекте установите точки останова для некоторых кодов. На панели инструментов Visual Studio убедитесь, что для конфигурации задано значение Debug, а в поле эмулятора отображается IIS Expressили новое имя профиля IIS.
Чтобы начать отладку, выберите IIS Express или <имя профиля IIS> на панели инструментов, выберите Начать отладку в меню отладки или нажмите клавишу F5. Отладчик приостанавливается в точках останова. Если отладчик не достигает точек останова, см. раздел Устранение неполадок при отладке.
Отладка приложений ASP.NET
IIS Express — это значение по умолчанию и предварительно настроено. Если вы выполняете отладку в локальных службах IIS, убедитесь, что выполнены требования для отладки локальных служб IIS.
Выберите проект ASP.NET в обозревателе решений Visual Studio и щелкните значок свойствили нажмите клавиши ALT+ВВОДили щелкните правой кнопкой мыши и выберите Свойства.
Выберите вкладку Web.
Если вы не видите вкладку Веб-, см. раздел Отладка приложений ASP.NET Core. Веб-вкладка отображается только для платформы ASP.NET Framework.
В области свойств , в разделе Серверы
- Для Kestrel выберите https в раскрывающемся списке.
- Для IIS Express выберите IIS Express в раскрывающемся списке.
- Для локального IIS
- Выберите Local IIS в раскрывающемся списке.
- Рядом с полем URL-адрес проекта выберите Создать виртуальный каталог, если вы еще не настроили приложение в IIS.
В разделе отладчикивыберите ASP.NET.
Выберите Файл>Сохранить выбранные элементы (или нажмите Ctrl +S) чтобы сохранить изменения.
Чтобы отладить приложение, в проекте установите точки останова для некоторых кодов. На панели инструментов Visual Studio убедитесь, что конфигурация установлена на Отладка, и нужный браузер отображается в IIS Express (<имя браузера>) или Local IIS (<имя браузера>) в поле эмулятора.
Чтобы начать отладку, выберите IIS Express (<имя браузера>) или локальные службы IIS (<имя браузера>) на панели инструментов, выберите Начать отладку в меню отладки или нажмите F5. Отладчик приостанавливается в точках останова. Если отладчику не удается попасть в точки прерывания, см. раздел Устранение неполадок при отладке.
Отладка и устранение неисправностей
Если локальная отладка IIS не может выполняться до точки останова, выполните следующие действия, чтобы устранить неполадки.
Запустите веб-приложение из IIS и убедитесь, что он работает правильно. Оставьте веб-приложение запущенным.
В Visual Studio выберите Отладка > подключиться к процессу или нажмите клавиши CTRL+ALT+Pи подключитесь к процессу ASP.NET или ASP.NET Core (обычно w3wp.exe или dotnet.exe). Дополнительные сведения см. в разделах «Присоединение к процессу» и «Как найти имя процесса ASP.NET».
Если вы можете подключиться и попасть в точку останова с помощью подключения к процессу, но не с помощью отладки>начать отладку или F5, параметр, вероятно, неверный в свойствах проекта. Если вы используете файл HOSTS, убедитесь, что он также настроен правильно.
Настройка отладки в файле web.config
ASP.NET проекты имеют web.config
файлы по умолчанию, которые содержат сведения о конфигурации и запуске приложения, включая параметры отладки. Файлы web.config
должны быть настроены правильно для отладки. Параметры свойств в предыдущих разделах обновляют файлы web.config
, но их также можно настроить вручную.
Заметка
ASP.NET Основные проекты изначально не имеют web.config
файлов, но используют appsettings.json
и launchSettings.json
файлы для настройки и запуска приложений. При развертывании приложения создается файл или файлы web.config
в проекте, но обычно они не содержат сведения об отладке.
Совет
Процесс развертывания может обновить параметры web.config
, поэтому перед попыткой отладки убедитесь, что web.config
настроены для отладки.
Чтобы вручную настроить файл web.config
для отладки:
В Visual Studio откройте файл
web.config
проекта ASP.NET.Web.config
является XML-файлом, поэтому содержит вложенные разделы, помеченные тегами. Найдите разделconfiguration/system.web/compilation
. (Если элементcompilation
не существует, создайте его.)Убедитесь, что атрибут
debug
в элементеcompilation
имеет значениеtrue
. (Если элементcompilation
не содержит атрибутdebug
, добавьте его и задайте для него значениеtrue
.)Если вы используете локальные службы IIS вместо сервера IIS Express по умолчанию, убедитесь, что значение атрибута
targetFramework
в элементеcompilation
соответствует платформе на сервере IIS.Элемент
compilation
файлаweb.config
должен выглядеть следующим образом:Заметка
Этот пример представляет собой частичный
web.config
-файл. Обычно в элементахconfiguration
иsystem.web
есть дополнительные разделы XML, а элементcompilation
может также содержать другие атрибуты и элементы.<configuration> ... <system.web> <compilation debug="true" targetFramework="4.6.1" ... > ... </compilation> </system.web> </configuration>
ASP.NET автоматически обнаруживает все изменения в файлах web.config
и применяет новые параметры конфигурации. Вам не нужно перезагрузить компьютер или сервер IIS, чтобы изменения вступили в силу.
Веб-сайт может содержать несколько виртуальных каталогов и подкаталогов с web.config
файлами в каждом из них. ASP.NET приложения наследуют параметры конфигурации из файлов web.config
на более высоких уровнях в пути URL-адреса. Иерархические параметры web.config
файлов применяются ко всем приложениям ASP.NET под ними в иерархии. Установка другой конфигурации в файле web.config
ниже в иерархии переопределяет параметры в более высоком файле.
Например, если указать debug="true"
в www.microsoft.com/aaa/web.config, любое приложение в папке aaa
или в любой вложенной папке aaa
наследует этот параметр, за исключением случаев, если одно из этих приложений переопределяет параметр с собственным файлом web.config
.
Важный
Режим отладки значительно снижает производительность приложения. При развертывании продуктового приложения или проведении измерений производительности, установите значение debug="false"
в web.config
и укажите релизную сборку.
Связанное содержимое
- отладка ASP.NET: требования к системе
- Как: Запустить процесс рабочего приложения под учетной записью пользователя
- Практическое руководство. Поиск имени процесса ASP.NET
- Отладка развернутых веб-приложений
- Практическое руководство. Отладка исключений ASP.NET
- Отладка веб-приложений: ошибки и устранение неполадок