J'avais un projet Asp.Net core 2.2.
Récemment, j'ai changé la version de .net core 2.2 à .net core 3.0 Preview 8. Après ce changement, je vois ce message d'avertissement:
l'utilisation de «UseMvc» pour configurer MVC n'est pas prise en charge lors de l'utilisation de Endpoint Routing. Pour continuer à utiliser «UseMvc», veuillez définir «MvcOptions.EnableEndpointRouting = false» dans «ConfigureServices».
Je comprends qu'en définissant EnableEndpointRouting
sur false, je peux résoudre le problème, mais j'ai besoin de savoir quelle est la bonne façon de le résoudre et pourquoi Endpoint Routing n'a pas besoin de UseMvc()
fonction.
c#
asp.net-mvc
asp.net-core
.net-core
Mehrdad Babaki
la source
la source
Réponses:
En général, vous devez utiliser à la
EnableEndpointRouting
place deUseMvc
, et vous pouvez vous référer au code de démarrage du routage de mise à jour pour connaître les étapes détaillées à activerEnableEndpointRouting
.Car
UseMvc
, il utilisethe IRouter-based logic
etEnableEndpointRouting
utiliseendpoint-based logic
. Ils suivent une logique différente que l'on peut trouver ci-dessous:Pour
EnableEndpointRouting
, il utilise EndpointMiddleware pour acheminer la demande vers les points de terminaison.la source
J'ai trouvé la solution, dans la documentation officielle suivante " Migrate from ASP.NET Core 2.2 to 3.0 ":
Il existe 3 approches:
Dans mon cas, le résultat ressemblait à ça
la source
services.AddRazorPages();
place deservices.AddMvc();
Cela a fonctionné pour moi (ajoutez la
Startup.cs
méthode ConfigureServices):la source
Le problème que j'ai trouvé était dû à des mises à jour sur le framework .NET Core. La dernière version publiée de .NET Core 3.0 nécessite une acceptation explicite pour l'utilisation de MVC.
Ce problème est le plus visible lorsque l'on essaie de migrer de l'ancienne .NET Core (version 2.2 ou préversion 3.0) vers .NET Core 3.0
Si vous migrez de la version 2.2 vers la version 3.0, veuillez utiliser le code ci-dessous pour résoudre le problème.
Si vous utilisez le modèle .NET Core 3.0,
Méthode ConfigServices après correction comme ci-dessous,
Merci
la source
Pour DotNet Core 3.1
Utilisez ci-dessous
Fichier: Startup.cs public void Configure (application IApplicationBuilder, env IHostingEnvironment) {
la source
Vous pouvez utiliser: dans la méthode ConfigureServices:
Et pour la méthode Configure:
la source
Cela a fonctionné pour moi sur .Net Core 3.1.
la source
Utilisez le code ci-dessous
la source