Отладка приложений 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 в IIS см. в разделе Удаленная отладка ASP.NET на компьютере IIS или Удаленная отладка ASP.NET Core на удаленном компьютере IIS.
Встроенные серверы Kestrel и IIS Express включены в Visual Studio. Kestrel — это сервер отладки по умолчанию для проектов ASP.NET Core и предварительно настроен. IIS Express — это сервер отладки по умолчанию для ASP.NET.
Встроенный сервер IIS Express входит в состав Visual Studio. IIS Express является сервером отладки по умолчанию для проектов ASP.NET и ASP.NET Core. Он уже предварительно настроен. Это самый простой способ отладки, идеально подходящий для первоначальной отладки и тестирования.
Для ASP.NET Core также можно выполнить отладку на веб-сервере Kestrel.
Предварительные требования для локального сервера IIS
Можно также выполнять отладку приложения ASP.NET или ASP.NET Core на локальном сервере IIS (версии 8.0 или более поздней), настроенном для запуска этого приложения. Для отладки на локальном сервере IIS необходимо выполнить следующие требования.
Если она не установлена, установите рабочую нагрузку ASP.NET и веб-разработка. (Перезапустите Visual Studio Installer, выберите Изменить и добавьте эту рабочую нагрузку.)
Запустите Visual Studio от имени администратора.
Установить и правильно настроить IIS, указав соответствующие версии ASP.NET и (или) ASP.NET Core. Дополнительные сведения об использовании IIS с ASP.NET Core см. в статье Размещение 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-адрес приложения и URL-адрес SSL приложения указаны правильно.
URL-адрес задает расположение узла для .NET или .NET Core. Для профиля с именем проекта (то есть свойство commandName в
launchSettings.json
Project), сервер Kestrel прослушивает указанный порт. Для профиля IIS значение обычно совпадает с URL-адресом приложения. Дополнительные сведения см. в разделе Настройка проекта в части "Профиль запуска служб IIS".URL-адрес приложения и URL-адрес SSL приложения указывают URL-адрес(а) приложения. Если профиль назван как проекту, это свойство задает URL-адреса сервера Kestrel (обычно
https://localhost:5001
иhttp://localhost:5000
). Для IIS Express URL-адресом SSL приложения обычно являетсяhttp://localhost:44334
.В разделе Переменные среды убедитесь, что параметр ASPNETCORE_ENVIRONMENT существует и имеет значение Разработка. Если это не так, добавьте переменную.
Дополнительные сведения о переменных среды см. в разделе Среды.
Для отладки приложения установите точки останова в некоторых местах кода проекта. На панели инструментов 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 существует и имеет значение Разработка. Если этот параметр отсутствует, нажмите кнопку Добавить и добавьте его.
Выберите Файл>Сохранить выбранные элементы или нажмите сочетание клавиш CTRL+S, чтобы сохранить изменения.
Для отладки приложения установите точки останова в некоторых местах кода проекта. В панели инструментов Visual Studio убедитесь, что для конфигурации задано значение Отладка, а в поле эмулятора указано IIS Express или имя нового профиля IIS.
Чтобы начать отладку, на панели инструментов выберите IIS Express или <Имя профиля IIS>, а затем выберите Начать отладку в меню Отладка или нажмите клавишу F5. Отладчик приостанавливает выполнение в точках останова. Если отладчик не может попасть в точки останова, см. раздел Устранение неполадок при отладке.
Отладка приложений ASP.NET
Сервер IIS Express используется по умолчанию и уже предварительно настроен. Если вы хотите выполнять отладку на локальном сервере IIS, убедитесь, что выполняются требования для отладки на локальном сервере IIS.
Выберите проект ASP.NET в Обозревателе решений Visual Studio, щелкните значок Свойства и нажмите сочетание клавиш ALT+ВВОД либо щелкните проект правой кнопкой мыши и выберите пункт Свойства.
Перейдите на вкладку Интернет.
Если вы не видите веб-вкладку, см. статью "Отладка ASP.NET Основных приложений". Веб-вкладка отображается только для ASP платформа .NET Framework.
В области Свойства в разделе Серверы выполните следующее.
- Для Kestrel выберите https из раскрывающегося списка.
- Для сервера IIS Express выберите IIS Express в раскрывающемся списке.
- Для локальных служб IIS
- в раскрывающемся списке выберите Локальный сервер IIS;
- рядом с полем URL-адрес проекта установите флажок Создать виртуальный каталог, если вы еще не настроили приложение в службах IIS.
В разделе Отладчики выберите ASP.NET.
Выберите Файл>Сохранить выбранные элементы или нажмите сочетание клавиш CTRL+S, чтобы сохранить изменения.
Для отладки приложения установите точки останова в некоторых местах кода проекта. На панели инструментов Visual Studio убедитесь, что для конфигурации задано значение Отладка, и нужный вам браузер отображается в поле эмулятора IIS Express (<имя браузера>) или Локальный сервер 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 Express по умолчанию вы используете локальный сервер IIS, убедитесь, что значение атрибута
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
- Отладка веб-приложений: ошибки и устранение неполадок