Литмир - Электронная Библиотека
A
A

На заметку! В случае запуска приложения из Visual Studio средства редактирования и продолжения больше не поддерживаются.

Использование командной строки или окна терминала Visual Studio Code

Чтобы запустить приложение из командной строки или окна терминала VS Code, перейдите в каталог, где находится файл

.csproj
для вашего приложения. Введите следующую команду для запуска приложения под управлением веб-сервера Kestrel:

dotnet run

Для завершения процесса нажмите <Ctrl+C>.

Изменение кода во время отладки

При запуске из командной строки код можно изменять, но изменения никак не будут отражаться в выполняющемся приложении. Чтобы изменения отражались в выполняющемся приложении, введите такую команду:

dotnet watch run

Обновленная команда вместе с вашим приложением запускает средство наблюдения за файлами. Когда в файлах любого проекта (или проекта, на который имеется ссылка) обнаруживаются изменения, приложение автоматически останавливается и затем снова запускается. Нововведением в версии ASP.NET Core 5 является перезагрузка любых подключенных окон браузера. Хотя в итоге средства редактирования и продолжения в точности не воспроизводятся, это немалое удобство при разработке.

Использование Visual Studio Code

Чтобы запустить проекты в VS Code, откройте каталог, где находится решение. После нажатия <F5> (или щелчка на кнопке запуска) среда VS Code предложит выбрать проект для запуска (

AutoLot.Api
или
AutoLot.Mvc
), создаст конфигурацию запуска и поместит ее в файл по имени
launch.json
. Кроме того, среда VS Code использует файл
launchsettings.json
для чтения конфигурации портов.

Изменение кода во время отладки

В случае запуска приложения из VS Code код можно изменять, но изменения никак не будут отражаться в выполняющемся приложении. Чтобы изменения отражались в выполняющемся приложении, введите в окне терминала команду

dotnet watch run
.

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

При запуске приложения из Visual Studio или VS Code отладка работает вполне ожидаемым образом. Но при запуске из командной строки вам необходимо присоединиться к выполняющемуся процессу, прежде чем вы сможете отлаживать свое приложение. В Visual Studio и VS Code это делается легко.

Присоединение с помощью Visual Studio

После запуска приложения (посредством команды

dotnet run
или
dotnet watch run
) выберите пункт меню DebugAttach to Process (Отладкам►Присоединиться к процессу) в Visual Studio. В открывшемся диалоговом окне Attach to Process (Присоединение к процессу) отыщите процесс по имени вашего приложения (рис. 29.4).

Язык программирования C#9 и платформа .NET5 - _281.png

После присоединения к выполняющемуся процессу вы можете устанавливать в Visual Studio точки останова, и отладка будет работать так, как ожидалось. Редактировать и продолжать выполнение не удастся; чтобы изменения отразились в функционирующем приложении, придется отсоединиться от процесса.

Присоединение с помощью Visual Studio Code

После запуска приложения (командой

dotnet run
или
dotnet watch run
) щелкните на кнопке запуска с зеленой стрелкой и выберите .NET Core Attach (Присоединение .NET Core) вместо .NET Core Launch (web) (Запуск .NET Core (веб)), как показано на рис. 29.5.

Язык программирования C#9 и платформа .NET5 - _282.png

Когда вы щелкнете на кнопке запуска, вам будет предложено выбрать процесс для присоединения к нему. Выберите свое приложение. Затем можете устанавливать точки останова обычным образом.

Преимущество использования среды VS Code заключается в том, что после ее присоединения (и применения команды

dotnet watch run
) вы можете обновлять свой код во время выполнения (без необходимости в отсоединении) и вносимые изменения будут отражаться в функционирующем приложении.

Обновление портов AutoLot.Api

Вы могли заметить, что приложения

AutoLot.Api
и
AutoLot.Mvc
имеют разные порты, указанные для их профилей IIS Express, но для обоих приложений порты Kestrel установлены в 5000 (HTTP) и 5001 (HTTPS), что вызовет проблемы, когда вы попытаетесь запустить приложения вместе. Измените порты для
AutoLot.Api
на 5020 (HTTP) и 5021 (HTTPS), например:

&quot;AutoLot.Api&quot;: {

  &quot;commandName&quot;: &quot;Project&quot;,

  &quot;launchBrowser&quot;: true,

  &quot;launchUrl&quot;: &quot;api/values&quot;,

  &quot;applicationUrl&quot;: &quot;https://localhost:5021;http://localhost:5020&quot;,

  &quot;environmentVariables&quot;: {

  &quot;ASPNETCORE_ENVIRONMENT&quot;: &quot;Development&quot;

  }

}

Создание и конфигурирование экземпляра WebHost

В отличие от классических приложений ASP.NET MVC или ASP.NET Web API приложения ASP.NET Core — это просто консольные приложения .NET Core, которые создают и конфигурируют экземпляр

WebHost
. Создание экземпляра
WebHost
и его последующее конфигурирование обеспечивают настройку приложения на прослушивание (и реагирование) на запросы HTTP. Экземпляр
WebHost
создается в методе
Main()
внутри файла
Program.cs
. Затем экземпляр
WebHost
конфигурируется для вашего приложения в файле
Startup.cs
.

Файл Program.cs

Откройте файл класса

Program.cs
в приложении
AutoLot.Api
и просмотрите его содержимое, которое для справки приведено ниже:

namespace AutoLot.Api

{

  public class Program

  {

586
{"b":"847442","o":1}