Übung – Lokales Ausführen Ihrer Web-App

Abgeschlossen

In dieser Übung führen Sie die folgenden Schritte aus:

  • Führen Sie Ihre Web-App lokal aus, und zeigen Sie sie in einem Browser an.
  • Überprüfen Sie, wie die Web-App bereitgestellt wird.

Ausführen der Web-App und Anzeigen in einem Browser

Führen Sie die Web-App in Visual Studio Code aus, und zeigen Sie sie in einem Browser an:

  1. Drücken Sie in Visual Studio Code F5, um die App auszuführen.

    Visual Studio Code:

    • Löst den .NET-CLI-Befehl dotnet run aus, der die Anwendung erstellt und ausführt.
    • Fügt den Debugger an die ausgeführte Anwendung an.

    Wenn das Projekt zum ersten Mal in Visual Studio Code ausgeführt wird, wird die Eingabeaufforderung Debugger auswählen angezeigt.

  2. Wählen Sie in der Eingabeaufforderung Debugger auswählen in der Befehlspalette oben auf der Visual Studio Code-Benutzeroberfläche die Option C# aus. Wählen Sie bei der nächsten Eingabeaufforderung die Standardstartkonfiguration (C#: MyWebApp [Default Configuration]) aus:

    Screenshot der Auswahl von

    Der Standardbrowser wird mit http://localhost:{PORT} gestartet, und die Antwort der App wird angezeigt. Der {PORT}-Platzhalter ist der zufällige Port, der der App beim Erstellen des App-Projekts zugewiesen wird. Wenn Sie den Port aufgrund eines lokalen Portkonflikts ändern müssen, ändern Sie den Port in der Datei Properties/launchSettings.json des Projekts.

    Die Antwort wird im Browser angezeigt:

    Screenshot: Browser, in dem die Textausgabe angezeigt wird

  3. Schließen Sie das Browserfenster.

  4. Gehen Sie in Visual Studio wie folgt vor:

    • Wählen Sie im Menü AusführenDebuggen beenden aus.
    • Drücken Sie UMSCHALTTASTE+F5 auf der Tastatur.

Führen Sie die Web-App mithilfe der .NET-CLI aus:

  1. Navigieren Sie auf einem Terminal oder in der Befehlszeile zum Projektverzeichnis MyWebApp, das die Datei MyWebApp.csproj enthält.

  2. Erstellen Sie die App, und führen Sie sie mit dem folgenden Befehl aus:

    dotnet run
    

    Das Projekt wird erstellt, ausgeführt und zeigt die folgende Ausgabe in der Befehlszeile an:

    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.
    

    Da die portnummer in der bereitgestellten URL bei der Projekterstellung zufällig in der Konfiguration festgelegt wird, weist Ihr Endpunkt möglicherweise eine andere Portnummer auf.

  3. Öffnen Sie die URL, die bei Ihrer eigenen Befehlszeilenausgabe generiert wurde, in einem Browser. Daraufhin wird die Antwort Hello World! der App angezeigt:

    Screenshot: Browser, in dem die Textausgabe angezeigt wird

  4. Um die App herunterzufahren, drücken Sie STRG+C an der Befehlszeile.

Bereitstellen der Web-App

Beim Erstellen und Ausführen der App werden die folgenden Schritte ausgeführt:

Erstellung und Konfiguration:

  • MSBuild wird aufgerufen, um Abhängigkeiten wiederherzustellen und das Projekt zu kompilieren. MSBuild verarbeitet die Projektdatei MyWebApp.csproj und kompiliert den Quellcode in einer Assembly.
  • Die App liest Konfigurationseinstellungen, einschließlich der einstellungen, die in launchSettings.json für das Standardstartprofil angegeben sind (die erste aufgeführt).

Hostsetup:

  • Die WebApplication.CreateBuilder-Methode in Program.cs richtet den Webhost ein. Standardmäßig konfiguriert diese Methode Kestrel als Webserver. Kestrel ist ein plattformübergreifender Webserver für ASP.NET Core, der für hohe Leistung ausgelegt ist.
  • Kestrel beginnt mit dem Lauschen auf eingehende HTTP-Anforderungen für die konfigurierten URLs, einschließlich HTTPS, falls angegeben.

Anforderungsverarbeitung:

  • Wenn eine Anforderung empfangen wird, leitet Kestrel sie an die ASP.NET Core-Middlewarepipeline weiter.
  • Die Middlewarepipeline verarbeitet die Anforderung über eine Reihe von Middlewarekomponenten, die Aufgaben wie Authentifizierung, Protokollierung und Routing verarbeiten können.
  • Wenn die Anforderung mit einer definierten Route übereinstimmt, wird der entsprechende Endpunkt ausgeführt. In diesem Fall verarbeitet der app.MapGet("/", () => "Hello World!")-Endpunkt Anforderungen an die Stamm-URL und gibt die Zeichenfolge Hello World! zurück.

Antwort:

  • Die Antwort, die in diesem Fall die Zeichenfolge „Hallo Welt!“ ist, wird über die Middlewarepipeline an Kestrel und daraufhin an den Client zurückgesendet.