Ćwiczenie — lokalne uruchamianie aplikacji internetowej

Ukończone

W tym ćwiczeniu wykonasz następujące czynności:

  • Uruchom aplikację internetową lokalnie i wyświetl ją w przeglądarce.
  • Sprawdź, jak jest obsługiwana aplikacja internetowa.

Uruchamianie aplikacji internetowej i wyświetlanie jej w przeglądarce

Uruchom aplikację internetową w programie Visual Studio Code i wyświetl w przeglądarce:

  1. W programie Visual Studio Code naciśnij F5 , aby uruchomić aplikację.

    Visual Studio Code:

    • Wyzwala polecenie dotnet run interfejsu wiersza polecenia platformy .NET, które kompiluje i uruchamia aplikację.
    • Dołącza debuger do uruchomionej aplikacji.

    Przy pierwszym uruchomieniu projektu w programie Visual Studio Code zostanie wyświetlony monit Select debugger (Wybieranie debugera ).

  2. W wierszu polecenia Wybierz debuger w palecie poleceń w górnej części interfejsu użytkownika programu Visual Studio Code wybierz pozycję C#. W następnym wierszu polecenia wybierz domyślną konfigurację uruchamiania (C#: MyWebApp [Default Configuration]):

    Zrzut ekranu przedstawiający wybieranie debugera w palecie poleceń.

    Domyślna przeglądarka jest uruchamiana pod adresem http://localhost:{PORT}, w którym jest wyświetlana odpowiedź aplikacji. Symbol {PORT} zastępczy to losowy port przypisany do aplikacji podczas tworzenia projektu aplikacji. Jeśli musisz zmienić port z powodu konfliktu portów lokalnych, zmień port w pliku Właściwości/launchSettings.json projektu.

    Odpowiedź wyświetlana w przeglądarce:

    Zrzut ekranu przedstawiający przeglądarkę wyświetlającą dane wyjściowe tekstu.

  3. Zamknij okno przeglądarki.

  4. W programie Visual Studio:

    • Z menu Uruchom wybierz pozycję Zatrzymaj debugowanie.
    • Naciśnij Shift+F5 na klawiaturze.

Uruchom aplikację internetową przy użyciu interfejsu wiersza polecenia platformy .NET:

  1. W terminalu lub wierszu polecenia przejdź do katalogu projektu MyWebApp , który zawiera plik MyWebApp.csproj .

  2. Skompiluj i uruchom aplikację za pomocą następującego polecenia:

    dotnet run
    

    Projekt jest kompilowany, uruchamiany i przedstawia następujące dane wyjściowe w wierszu polecenia:

    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.
    

    Ponieważ numer portu w podanym adresie URL jest ustawiany losowo w konfiguracji podczas tworzenia projektu, punkt końcowy może mieć inny numer portu.

  3. Otwórz przeglądarkę pod adresem URL wygenerowanym we własnych danych wyjściowych wiersza polecenia. Zostanie wyświetlona odpowiedź Hello World! aplikacji:

    Zrzut ekranu przedstawiający przeglądarkę wyświetlającą dane wyjściowe tekstu.

  4. Aby zamknąć aplikację, naciśnij Ctrl+C w wierszu polecenia.

Jak jest obsługiwana aplikacja internetowa

Po skompiluj i uruchomieniu aplikacji wykonaj następujące kroki:

Kompilacja i konfiguracja:

  • Program MSBuild jest wywoływany w celu przywrócenia zależności i skompilowania projektu. Program MSBuild przetwarza plik projektu MyWebApp.csproj i kompiluje kod źródłowy do zestawu.
  • Aplikacja odczytuje ustawienia konfiguracji, w tym ustawienia określone w launchSettings.json dla domyślnego profilu uruchamiania (pierwszy na liście).

Konfiguracja hosta:

  • Metoda WebApplication.CreateBuilder w Program.cs konfiguruje hosta internetowego. Domyślnie ta metoda konfiguruje usługę Kestrel jako serwer internetowy. Kestrel to międzyplatformowy serwer internetowy dla platformy ASP.NET Core zaprojektowany pod kątem wysokiej wydajności.
  • Usługa Kestrel rozpoczyna nasłuchiwanie przychodzących żądań HTTP na skonfigurowanych adresach URL, w tym https, jeśli zostanie określony.

Obsługa żądań:

  • Po odebraniu żądania usługa Kestrel przekazuje je do potoku oprogramowania pośredniczącego ASP.NET Core.
  • Potok oprogramowania pośredniczącego przetwarza żądanie za pośrednictwem serii składników oprogramowania pośredniczącego, które mogą obsługiwać zadania, takie jak uwierzytelnianie, rejestrowanie i routing.
  • Jeśli żądanie pasuje do zdefiniowanej trasy, zostanie wykonany odpowiedni punkt końcowy. W takim przypadku app.MapGet("/", () => "Hello World!") punkt końcowy obsługuje żądania do głównego adresu URL i zwraca ciąg Hello World!.

Reakcja:

  • Odpowiedź, która w tym przypadku jest ciągiem "Hello World!", jest wysyłana z powrotem przez potok oprogramowania pośredniczącego do usługi Kestrel, który następnie wysyła go z powrotem do klienta.