Отладка приложений 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.

  1. Выберите проект ASP.NET Core в Обозревателе решений Visual Studio, щелкните значок Свойства и нажмите сочетание клавиш ALT+ВВОД либо щелкните проект правой кнопкой мыши и выберите пункт Свойства.

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

    Представленный пользовательский интерфейс соответствует параметрам в файле проекта launchSettings.json . Дополнительные сведения об этом файле см. в разделе "Разработка и launchSettings.json использование нескольких сред в ASP.NET Core".

  3. Выберите профиль, который необходимо настроить для отладки.

    • Для Kestrel выберите профиль https или профиль с именем проекта.
    • Для сервера IIS Express выберите IIS Express в раскрывающемся списке.
    • Для локальных служб IIS выберите Создать и создайте профиль IIS.
  4. Убедитесь, что флажок Запуск браузера установлен.

  5. Убедитесь, что URL-адрес, URL-адрес приложения и URL-адрес SSL приложения указаны правильно.

    URL-адрес задает расположение узла для .NET или .NET Core. Для профиля с именем проекта (то есть свойство commandName в launchSettings.jsonProject), сервер Kestrel прослушивает указанный порт. Для профиля IIS значение обычно совпадает с URL-адресом приложения. Дополнительные сведения см. в разделе Настройка проекта в части "Профиль запуска служб IIS".

    URL-адрес приложения и URL-адрес SSL приложения указывают URL-адрес(а) приложения. Если профиль назван как проекту, это свойство задает URL-адреса сервера Kestrel (обычно https://localhost:5001 и http://localhost:5000). Для IIS Express URL-адресом SSL приложения обычно является http://localhost:44334.

  6. В разделе Переменные среды убедитесь, что параметр ASPNETCORE_ENVIRONMENT существует и имеет значение Разработка. Если это не так, добавьте переменную.

    Параметры отладчика ASP.NET Core

    Дополнительные сведения о переменных среды см. в разделе Среды.

  7. Для отладки приложения установите точки останова в некоторых местах кода проекта. На панели инструментов Visual Studio убедитесь, что в качестве параметра конфигурации задано значение Отладка.

  8. Чтобы начать отладку, выберите имя профиля на панели инструментов, например https, IIS Express или имя> профиля IIS на панели инструментов, выберите "Начать отладку" в меню отладки или <нажмите клавишу F5. Отладчик приостанавливает выполнение в точках останова. Если отладчик не может попасть в точки останова, см. раздел Устранение неполадок при отладке.

Отладка приложений ASP.NET Core

Сервер IIS Express используется по умолчанию и уже предварительно настроен. Если вы хотите выполнять отладку на локальном сервере IIS, убедитесь, что выполняются требования для отладки на локальном сервере IIS.

  1. Выберите проект ASP.NET Core в Обозревателе решений Visual Studio, щелкните значок Свойства и нажмите сочетание клавиш ALT+ВВОД либо щелкните проект правой кнопкой мыши и выберите пункт Свойства.

  2. Выберите вкладку Отладка.

  3. В области Свойства рядом с полем Профиль выполните следующее.

    • Для сервера IIS Express выберите IIS Express в раскрывающемся списке.
    • Для локального сервера IIS выберите в раскрывающемся списке имя приложения или нажмите Создать, создайте новое имя профиля и нажмите кнопку ОК.
  4. В раскрывающемся списке рядом с полем Запуск выберите IIS Express или IIS.

  5. Убедитесь, что флажок Запуск браузера установлен.

  6. В разделе Переменные среды убедитесь, что параметр ASPNETCORE_ENVIRONMENT существует и имеет значение Разработка. Если этот параметр отсутствует, нажмите кнопку Добавить и добавьте его.

    Параметры отладчика ASP.NET Core

  7. Выберите Файл>Сохранить выбранные элементы или нажмите сочетание клавиш CTRL+S, чтобы сохранить изменения.

  8. Для отладки приложения установите точки останова в некоторых местах кода проекта. В панели инструментов Visual Studio убедитесь, что для конфигурации задано значение Отладка, а в поле эмулятора указано IIS Express или имя нового профиля IIS.

  9. Чтобы начать отладку, на панели инструментов выберите IIS Express или <Имя профиля IIS>, а затем выберите Начать отладку в меню Отладка или нажмите клавишу F5. Отладчик приостанавливает выполнение в точках останова. Если отладчик не может попасть в точки останова, см. раздел Устранение неполадок при отладке.

Отладка приложений ASP.NET

Сервер IIS Express используется по умолчанию и уже предварительно настроен. Если вы хотите выполнять отладку на локальном сервере IIS, убедитесь, что выполняются требования для отладки на локальном сервере IIS.

  1. Выберите проект ASP.NET в Обозревателе решений Visual Studio, щелкните значок Свойства и нажмите сочетание клавиш ALT+ВВОД либо щелкните проект правой кнопкой мыши и выберите пункт Свойства.

  2. Перейдите на вкладку Интернет.

    Если вы не видите веб-вкладку, см. статью "Отладка ASP.NET Основных приложений". Веб-вкладка отображается только для ASP платформа .NET Framework.

  3. В области Свойства в разделе Серверы выполните следующее.

    • Для Kestrel выберите https из раскрывающегося списка.
    • Для сервера IIS Express выберите IIS Express в раскрывающемся списке.
    • Для локальных служб IIS
      1. в раскрывающемся списке выберите Локальный сервер IIS;
      2. рядом с полем URL-адрес проекта установите флажок Создать виртуальный каталог, если вы еще не настроили приложение в службах IIS.
  4. В разделе Отладчики выберите ASP.NET.

    Снимок экрана: параметры отладчика ASP.NET.

  5. Выберите Файл>Сохранить выбранные элементы или нажмите сочетание клавиш CTRL+S, чтобы сохранить изменения.

  6. Для отладки приложения установите точки останова в некоторых местах кода проекта. На панели инструментов Visual Studio убедитесь, что для конфигурации задано значение Отладка, и нужный вам браузер отображается в поле эмулятора IIS Express (<имя браузера>) или Локальный сервер IIS (<имя браузера>) в поле эмулятора.

  7. Чтобы начать отладку, на панели инструментов выберите IIS Express (<имя браузера>) или Локальный сервер IIS (<имя браузера>), а затем выберите Начать отладку в меню Отладка или нажмите клавишу F5. Отладчик приостанавливает выполнение в точках останова. Если отладчик не может попасть в точки останова, см. раздел Устранение неполадок при отладке.

Устранение неполадок отладки

Если при отладке на локальном сервере IIS не удается достичь точки останова, выполните следующие шаги для устранения неполадок.

  1. Запустите веб-приложение из IIS и убедитесь, что оно работает правильно. Оставьте веб-приложение работать.

  2. В 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 файл для отладки, выполните следующие действия.

  1. В Visual Studio откройте файл проекта web.config ASP.NET.

  2. Web.config представляет собой XML-файл, поэтому содержит вложенные разделы, помеченные тегами. Найдите раздел configuration/system.web/compilation. (Если элемент compilation не существует, создайте его.)

  3. Убедитесь, что атрибут debug в элементе compilation имеет значение true. (Если в элементе compilation отсутствует атрибут debug, добавьте его и установите для него значение true.)

    Если вместо сервера IIS Express по умолчанию вы используете локальный сервер IIS, убедитесь, что значение атрибута targetFramework в элементе compilation соответствует платформе на сервере IIS.

    Элемент compilationweb.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 и укажите сборку выпуска.