Язык программирования C#9 и платформа .NET5
На заметку! В случае запуска приложения из Visual Studio средства редактирования и продолжения больше не поддерживаются.
Использование командной строки или окна терминала Visual Studio Code
Чтобы запустить приложение из командной строки или окна терминала VS Code, перейдите в каталог, где находится файл
для вашего приложения. Введите следующую команду для запуска приложения под управлением веб-сервера Kestrel:.csprojdotnet runДля завершения процесса нажмите <Ctrl+C>.
Изменение кода во время отладки
При запуске из командной строки код можно изменять, но изменения никак не будут отражаться в выполняющемся приложении. Чтобы изменения отражались в выполняющемся приложении, введите такую команду:
dotnet watch runОбновленная команда вместе с вашим приложением запускает средство наблюдения за файлами. Когда в файлах любого проекта (или проекта, на который имеется ссылка) обнаруживаются изменения, приложение автоматически останавливается и затем снова запускается. Нововведением в версии ASP.NET Core 5 является перезагрузка любых подключенных окон браузера. Хотя в итоге средства редактирования и продолжения в точности не воспроизводятся, это немалое удобство при разработке.
Использование Visual Studio Code
Чтобы запустить проекты в VS Code, откройте каталог, где находится решение. После нажатия <F5> (или щелчка на кнопке запуска) среда VS Code предложит выбрать проект для запуска (
илиAutoLot.Api), создаст конфигурацию запуска и поместит ее в файл по имениAutoLot.Mvc. Кроме того, среда VS Code использует файлlaunch.jsonдля чтения конфигурации портов.launchsettings.jsonИзменение кода во время отладки
В случае запуска приложения из VS Code код можно изменять, но изменения никак не будут отражаться в выполняющемся приложении. Чтобы изменения отражались в выполняющемся приложении, введите в окне терминала команду
.dotnet watch runОтладка приложений ASP.NET Core
При запуске приложения из Visual Studio или VS Code отладка работает вполне ожидаемым образом. Но при запуске из командной строки вам необходимо присоединиться к выполняющемуся процессу, прежде чем вы сможете отлаживать свое приложение. В Visual Studio и VS Code это делается легко.
Присоединение с помощью Visual Studio
После запуска приложения (посредством команды
илиdotnet run) выберите пункт меню Debug►Attach to Process (Отладкам►Присоединиться к процессу) в Visual Studio. В открывшемся диалоговом окне Attach to Process (Присоединение к процессу) отыщите процесс по имени вашего приложения (рис. 29.4).dotnet watch runПосле присоединения к выполняющемуся процессу вы можете устанавливать в Visual Studio точки останова, и отладка будет работать так, как ожидалось. Редактировать и продолжать выполнение не удастся; чтобы изменения отразились в функционирующем приложении, придется отсоединиться от процесса.
Присоединение с помощью Visual Studio Code
После запуска приложения (командой
илиdotnet run) щелкните на кнопке запуска с зеленой стрелкой и выберите .NET Core Attach (Присоединение .NET Core) вместо .NET Core Launch (web) (Запуск .NET Core (веб)), как показано на рис. 29.5.dotnet watch runКогда вы щелкнете на кнопке запуска, вам будет предложено выбрать процесс для присоединения к нему. Выберите свое приложение. Затем можете устанавливать точки останова обычным образом.
Преимущество использования среды VS Code заключается в том, что после ее присоединения (и применения команды
) вы можете обновлять свой код во время выполнения (без необходимости в отсоединении) и вносимые изменения будут отражаться в функционирующем приложении.dotnet watch runОбновление портов AutoLot.Api
Вы могли заметить, что приложения
иAutoLot.Apiимеют разные порты, указанные для их профилей IIS Express, но для обоих приложений порты Kestrel установлены в 5000 (HTTP) и 5001 (HTTPS), что вызовет проблемы, когда вы попытаетесь запустить приложения вместе. Измените порты дляAutoLot.Mvcна 5020 (HTTP) и 5021 (HTTPS), например:AutoLot.Api"AutoLot.Api": {"commandName": "Project","launchBrowser": true,"launchUrl": "api/values","applicationUrl": "https://localhost:5021;http://localhost:5020","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"}}Создание и конфигурирование экземпляра WebHost
В отличие от классических приложений ASP.NET MVC или ASP.NET Web API приложения ASP.NET Core — это просто консольные приложения .NET Core, которые создают и конфигурируют экземпляр
. Создание экземпляраWebHostи его последующее конфигурирование обеспечивают настройку приложения на прослушивание (и реагирование) на запросы HTTP. ЭкземплярWebHostсоздается в методеWebHostвнутри файлаMain(). Затем экземплярProgram.csконфигурируется для вашего приложения в файлеWebHost.Startup.csФайл Program.cs
Откройте файл класса
в приложенииProgram.csи просмотрите его содержимое, которое для справки приведено ниже:AutoLot.Apinamespace AutoLot.Api{public class Program{

