Übung – Lokales Ausführen Ihrer Web-App
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:
Drücken Sie in Visual Studio Code F5, um die App auszuführen.
Visual Studio Code:
- Löst den .NET-CLI-Befehl
dotnet runaus, 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.
- Löst den .NET-CLI-Befehl
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:
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:
Schließen Sie das Browserfenster.
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:
Navigieren Sie auf einem Terminal oder in der Befehlszeile zum Projektverzeichnis MyWebApp, das die Datei MyWebApp.csproj enthält.
Erstellen Sie die App, und führen Sie sie mit dem folgenden Befehl aus:
dotnet runDas 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.
Öffnen Sie die URL, die bei Ihrer eigenen Befehlszeilenausgabe generiert wurde, in einem Browser. Daraufhin wird die Antwort
Hello World!der App angezeigt:
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 ZeichenfolgeHello 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.