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


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

  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 приложенияи SSL URL приложения правильные.

    URL-адрес указывает расположение URL-адреса узла для .NET Core или .NET 5+. Для профиля, названного в честь проекта (то есть, свойство commandName в launchSettings.jsonProject), сервер 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.
  6. В переменных окруженияудостоверьтесь, что ASPNETCORE_ENVIRONMENT присутствует со значением Development. Если нет, добавьте переменную.

    Настройки отладчика 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 присутствует со значением Development. Если нет, выберите Добавить и добавьте его.

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

  7. Используйте файл>сохранить выбранные элементы или CTRL+S для сохранения изменений.

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

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

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

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

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

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

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

  3. В области свойств , в разделе Серверы

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

    снимок экрана, показывающий параметры отладчика ASP.NET.

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

  6. Чтобы отладить приложение, в проекте установите точки останова для некоторых кодов. На панели инструментов Visual Studio убедитесь, что конфигурация установлена на Отладка, и нужный браузер отображается в IIS Express (<имя браузера>) или Local 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 вместо сервера 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 и укажите релизную сборку.