Mit dem Aufkommen von ASP.NET Core 2.1 erstellt Kestrel nun automatisch einen HTTPS-Endpunkt neben dem HTTP-Endpunkt, und Standardprojektvorlagen werden so eingerichtet, dass sie von HTTP zu HTTPS umleiten (was leicht rückgängig zu machen ist).
Meine Frage ist jedoch ... wie kann ich HTTPS für mein Projekt vollständig deaktivieren. Ich habe die Dokumente gelesen und mit verschiedenen Konfigurationseinstellungen für HTTPS gespielt, aber nichts, was ich tue, scheint es mir zu ermöglichen, es auszuschalten und einfach ein HTTP-Projekt auszuführen.
Bin ich verrückt oder vermisse ich einfach etwas? Ich würde erwarten, dass dies super einfach ist.
Antworten:
Wenn Sie Visual Studio 2017 verwenden, können Sie Folgendes tun:
Dadurch werden die iisExpress-Einstellungen in der Datei launchSettings.json aktualisiert.
quelle
Entfernen Sie in der Datei Startup.cs die Middleware
quelle
Es stellte sich heraus, dass der richtige Weg, um das zu erreichen, was ich tun wollte, darin bestand, Kestrel speziell mit .UseKestrel () zu konfigurieren und einfach eine einzelne Adresse wie folgt anzugeben:
in affekt das Standard-Setup überschreiben und diese Warnung anzeigen, wenn Kestel startet:
Wenn eine zweite Adresse angegeben wird, wird davon ausgegangen, dass die Adresse mit dem integrierten Entwicklerzertifikat als solches gesichert werden soll:
Sie können Ihre SSL-Adresse natürlich speziell wie hier beschrieben sichern:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.1&tabs=aspnetcore2x
was für Produktionsaufbauten notwendig ist.
quelle
{ "urls": "http://localhost:5080" }
(main)public static void Main(string[] args) { IConfigurationRoot config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("hosting.json") .AddCommandLine(args) .Build(); CreateWebHostBuilder(args).UseConfiguration(config).Build().Run(); }
Properties/launchSettings.json
Schauen Sie in der Datei Ihres Projekts nach dem SchlüsselapplicationUrl
. Sie finden so etwas wie:Entfernen Sie den
https
Endpunkt und fertig.Bearbeiten
Wie von @Xorcist angegeben, wird die Datei
launchSettings.json
nicht veröffentlicht. Die obige Lösung funktioniert also nur in einer Entwicklungsumgebung. Sie können einen der folgenden Schritte ausführen, um https zu deaktivieren und im Allgemeinen die URLs zu konfigurieren, die Sie sowohl in der Produktion als auch in der Entwicklung anhören möchten:Verwenden Sie die
--urls
Parameter vondotnet run
, haben den gleichen Effekt wieapplicationUrl
inlaunchSettings.json
. Zum Beispiel :dotnet run --urls=http://0.0.0.0:5000,https://0.0.0.0:5001
. Entfernen Sie erneut diejenige, die Sie nicht verwenden möchten.Gleiches kann mit der
ASPNETCORE_URLS
Umgebungsvariablen erreicht werden.appsettings.json
(dies ist anscheinend in 2.0 nicht möglich).useUrls
Erweiterungsmethode erreicht werdenWebHost.CreateDefaultBuilder(args).UseUrls("http://0.0.0.0:5000")
. Ich bevorzuge die andere Lösung, da diese Hardcodes Ihre Anwendungsendpunkte sind und nicht geändert werden können, ohne die Anwendung neu zu kompilieren.Alle möglichen Optionen werden in den Microsoft Docs dazu ausführlich erläutert .
quelle
dotnet new
wird automatisch einelaunchSettings.json
Datei in dotnet 2.1 erstellt. Dies war in dotnet 2.0 nicht der Fall. Ich habe dies gerade in meiner Ubuntu-Box getestet, in der Visual Studio nicht installiert ist. Zumindest für die Version 2.1launchSettings.json
handelt es sich also nicht um eine Visual Studio-spezifische Datei.launchSettings.json
nicht veröffentlicht, ist es auch wahr, aber in einer Produktionseinstellung möchten Sie wahrscheinlich, dass https standardmäßig aktiviert ist. Wie auch immer, ich werde meine Antwort mit anderen Optionen aktualisieren.Fügen Sie in Program.cs UseUrls wie folgt hinzu:
Und in The Startup.cs entfernen / kommentieren Sie Folgendes:
quelle
Die
dotnet
CLI hat jetzt eine Vorlage dafür.quelle
Mit ASPNET CORE 2.2 setze ich die Webserver-URL einfach auf http und nicht auf https und sie wird von selbst abgerufen. Ich führe es als selbst gehosteten Prozess aus.
quelle
Deaktivieren Sie in den Projekteigenschaften SSL aktivieren
quelle