Vor zwei Tagen habe ich eine .NET-Core-Startanalyse erneut ausgedruckt, weil ich beim Release im Standard-5000-Port feststeckte, also habe ich sie sorgfältig studiert.
1. IIS-Integration
Wenn Sie IIS als Host verwenden, sind diese kein Problem, leistungsstarkes IIS kann uns helfen, den Domainnamen, Port usw. der Seite zu konfigurieren. Was die Bereitstellung einer asp.net Kernwebanwendung auf IIS angeht, ist das hier nicht der Punkt. Beschreiben Sie es grob so:
Du musst das Net Core SDK und Server Hosting herunterladen, und die Download-Adresse ist https://www.microsoft.com/net/download
Nach der Installation prüfen Sie, ob das .NET Core SDK erfolgreich in der Kommandozeile dotnet-info installiert wurde
Ob der Server-Host erfolgreich im IIS-Modul und im Handler-Mapping installiert wurde, wird unten gezeigt
Dann richte ich die Seite ein und gib die Dateien auf der Veröffentlichungsseite an
Schließlich sollte der Programmpool konfiguriert und unverwaltet gewählt werden, sodass eine Server-Host-Weiterleitungsanfrage vorliegt.
2. Linux-Umgebung
Ganz zu schweigen von der konkreten Installation, es gibt auch viele davon. Laut den Anweisungen auf der offiziellen Website, also installieren Sie die .NET Core-Laufumgebung und sie kann laufen.
Hier ist ein empfohlener Blogbeitrag für Ihre eigene Referenz: Bereitstellung ASP.NET Core-Anwendungen in der Produktion (CentOS7)
Zurück zum Hauptpunkt: Wie man URL- und Portparameter konfiguriert
1. Spezifizieren Sie in der Hauptmethode des Programms
Dieser Ansatz ist unflexibel und nicht besonders elegant, selbst wenn er durch das Hinzufügen einer Konfigurationsdatei gelesen wird. Zu diesem Zeitpunkt hatte ich das Gefühl, dass Microsoft eine solche Verwendung definitiv nicht empfehlen würde, also suchte ich weiter danach.
2. Die Umgebungsvariable passieren
Ich habe im Internet einen Artikel gesehen: Wie man Kestrel-URLs in ASP.NET Core RC2 konfiguriert,
Obwohl es weiterhin über die Konfigurationsdatei konfiguriert ist, muss es die Konfigurationsinformationen nicht an andere Artikel vorlesen, und es kann direkt durch Binding oder durch Einfügen des Codes verwendet werden, um zu sehen:
hosting.json
Program.cs
So kann es auch zuhören
Jetzt hören wir weiter: http://localhost:60000
Jetzt hören wir weiter: http://localhost:60001
Ist das nicht erstaunlich! Ich kann den eigentlichen Kampf nicht ertragen, zieh den Quellcode ab! Das mit Abstand Beste an .NET Core ist, dass es Quellcode hat!
Durch die Quellen können wir wissen, dass es sich hauptsächlich um die WebHostBuilder-Klasse handelt, unter dem Microsoft.AspNetCore.Hosting-Namensraum.
Die Hauptmethode ist Build
Der Hauptfokus liegt hier darauf, ein WebHost-Objekt zu erstellen und dann weiter zu schauen
Indem wir den Quellcode über die Initialize-Methode betrachten, können wir die mit der EnsureServer-Methode erstellte URL-Adresse erkennen
Hier sehen wir, dass es _config[WebHostDefaults.ServerUrlsKey] und _config[DeprecatedServerUrlsKey] aus der Konfiguration liest.
Der Wert von WebHostDefaults.ServerUrlsKey ist ein fester Wert
Der Wert von DeprecatedServerUrlsKey wird am Anfang des WebHost-Objekts definiert
Oh! Die Wahrheit wird offenbart. Wir können also "server.urls" in der Konfigurationsdatei setzen.
Zusammenfassung:
Zusammenfassend liest asp.net Kern die Konfiguration in der Umgebungsvariable, wenn sie startet, und der eigentliche Zweck ist es, die folgende Konfiguration zu den Projekteigenschaften hinzuzufügen:
Es wurde im Konsolenmodus gestartet und festgestellt, dass der Port umgeschaltet wurde.
Das ist also eine Entwicklungsumgebung – wie kann man sie auf der Produktionslinie einsetzen? Auch das ist sehr einfach, nehmen wir als Beispiel die Linux-Bereitstellung: Mit dem Daemon Supervisor das Programm starten und Umgebungsvariablen zur Startkonfiguration des Supervisors hinzufügen:
Erfolg mit Bravour! Keine einzige Codezeile muss geändert werden, haha~ |