Упражнение. Локальное выполнение веб-приложения

Завершено

В этом упражнении вы выполните следующие действия.

  • Запустите веб-приложение локально и просмотрите его в браузере.
  • Ознакомьтесь с тем, как обслуживается веб-приложение.

Запуск веб-приложения и просмотр в браузере

Запустите веб-приложение в Visual Studio Code и просмотрите в браузере:

  1. В Visual Studio Code нажмите клавишу F5 , чтобы запустить приложение.

    Visual Studio Code.

    • Активирует команду dotnet run .NET CLI, которая создает и запускает приложение.
    • Присоединяет отладчик к работающему приложению.

    При первом запуске проекта в Visual Studio Code отображается запрос отладчика Select.

  2. В строке выбора отладчика в палитре команд в верхней части пользовательского интерфейса Visual Studio Code выберите C#. В следующем запросе выберите конфигурацию запуска по умолчанию (C#: MyWebApp [Default Configuration]):

    снимок экрана, на котором производится выбор элемента 'Отладчик' в палитре команд.

    Браузер по умолчанию запускается http://localhost:{PORT}по адресу, в котором отображается ответ приложения. Заполнитель {PORT} — это случайный порт, назначенный приложению при создании проекта приложения. Если необходимо изменить порт из-за конфликта локального порта, измените порт в файле свойств или launchSettings.json проекта.

    Ответ, отображаемый в браузере:

    Снимок экрана: браузер, отображающий текстовые выходные данные.

  3. Закройте окно браузера.

  4. В Visual Studio либо:

    • В меню "Запуск" выберите "Остановить отладку".
    • Нажмите клавиши SHIFT+F5 на клавиатуре.

Запустите веб-приложение с помощью интерфейса командной строки .NET:

  1. В терминале или командной строке перейдите в каталог проекта MyWebApp, содержащий файл MyWebApp.csproj.

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

    dotnet run
    

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

    C:\MyWebApp> dotnet run
    Building...
    info: Microsoft.Hosting.Lifetime[14]
            Now listening on: http://localhost:5267
    info: Microsoft.Hosting.Lifetime[0]
            Application started. Press Ctrl+C to shut down.
    

    Так как номер порта в URL-адресе указан случайным образом в конфигурации при создании проекта, конечная точка может иметь другой номер порта.

  3. Откройте браузер для URL-адреса, созданного в выходных данных командной строки, отображается ответ Hello World! приложения:

    Снимок экрана: браузер, отображающий текстовые выходные данные.

  4. Чтобы завершить работу приложения, нажмите клавиши CTRL+C в командной строке.

Как обслуживается веб-приложение

При создании и запуске приложения выполняются следующие действия.

Сборка и конфигурация:

  • MSBuild вызывается для восстановления зависимостей и компиляции проекта. MSBuild обрабатывает файл проекта MyWebApp.csproj и компилирует исходный код в сборку.
  • Приложение считывает параметры конфигурации, включая параметры, указанные в launchSettings.json для профиля запуска по умолчанию (первый указанный).

Настройка узла:

  • Метод WebApplication.CreateBuilder в Program.cs настраивает веб-узел. По умолчанию этот метод настраивает Kestrel как веб-сервер. Kestrel — это кроссплатформенный веб-сервер для ASP.NET Core, предназначенный для обеспечения высокой производительности.
  • Kestrel начинает прослушивать входящие HTTP-запросы по настроенным URL-адресам, включая HTTPS, если указано.

Обработка запросов:

  • При получении запроса Kestrel перенаправит его в конвейер по промежуточного слоя ASP.NET Core.
  • Конвейер ПО промежуточного слоя обрабатывает запрос с помощью ряда компонентов ПО промежуточного слоя, которые могут обрабатывать такие задачи, как проверка подлинности, ведение журнала и маршрутизация.
  • Если запрос соответствует определенному маршруту, выполняется соответствующая конечная точка. В этом случае конечная app.MapGet("/", () => "Hello World!") точка обрабатывает запросы к корневому URL-адресу и возвращает строку Hello World!.

Ответ:

  • Ответ, который в данном случае является строкой "Hello World!", отправляется обратно через конвейер ПО промежуточного слоя в Kestrel, который затем отправляет его обратно клиенту.