Ich hatte ein Asp.Net Core 2.2-Projekt.
Vor kurzem habe ich die Version von .net Core 2.2 auf .net Core 3.0 geändert. Vorschau 8. Nach dieser Änderung wird folgende Warnmeldung angezeigt:
Die Verwendung von 'UseMvc' zum Konfigurieren von MVC wird bei Verwendung von Endpoint Routing nicht unterstützt. Um 'UseMvc' weiterhin zu verwenden, setzen Sie bitte 'MvcOptions.EnableEndpointRouting = false' in 'ConfigureServices'.
Ich verstehe, dass EnableEndpointRouting
ich das Problem durch Setzen auf false lösen kann, aber ich muss wissen, wie es richtig gelöst werden kann und warum Endpoint Routing keine UseMvc()
Funktion benötigt .
c#
asp.net-mvc
asp.net-core
.net-core
Mehrdad Babaki
quelle
quelle
Antworten:
Im Allgemeinen sollten Sie
EnableEndpointRouting
anstelle von verwendenUseMvc
, und Sie können den Startcode für das Routing des Updates für detaillierte Schritte zum Aktivieren verwendenEnableEndpointRouting
.Denn
UseMvc
es benutztthe IRouter-based logic
undEnableEndpointRouting
benutztendpoint-based logic
. Sie folgen einer anderen Logik, die unten zu finden ist:Zum Beispiel
EnableEndpointRouting
wird EndpointMiddleware verwendet , um die Anforderung an die Endpunkte weiterzuleiten.quelle
Ich fand die Lösung in der folgenden offiziellen Dokumentation " Von ASP.NET Core 2.2 auf 3.0 migrieren ":
Es gibt 3 Ansätze:
In meinem Fall sah das Ergebnis so aus
quelle
services.AddRazorPages();
anstelle vonservices.AddMvc();
Dies hat bei mir funktioniert (hinzufügen
Startup.cs
> ConfigureServices-Methode):quelle
Das Problem war auf Updates im .NET Core-Framework zurückzuführen. Die neueste veröffentlichte Version von .NET Core 3.0 erfordert eine explizite Anmeldung für die Verwendung von MVC.
Dieses Problem tritt am deutlichsten auf, wenn versucht wird, von älterem .NET Core (Version 2.2 oder Vorschau 3.0) auf .NET Core 3.0 zu migrieren
Verwenden Sie bei der Migration von 2.2 auf 3.0 den folgenden Code, um das Problem zu beheben.
Wenn Sie eine .NET Core 3.0-Vorlage verwenden,
ConfigServices-Methode nach dem Fix wie unten,
Danke
quelle
Für DotNet Core 3.1
Verwenden Sie unten
Datei: Startup.cs public void Configure (IApplicationBuilder-App, IHostingEnvironment env) {
quelle
Sie können Folgendes verwenden: in der ConfigureServices-Methode:
Und für die Konfigurationsmethode:
quelle
Dies funktionierte bei mir auf .Net Core 3.1.
quelle
Verwenden Sie den folgenden Code
quelle