Après la mise à niveau du cadre de projet de l'API Web ASP NET Web vers la version Core 2.2, la configuration de la route OData échoue. Elle génère "Impossible d'utiliser" Microsoft.AspNet.OData.Routing.ODataRoute "avec le routage des points de terminaison. "Exception.
Le lien https://github.com/Microsoft/aspnet-api-versioning/issues/361 montre comment éviter l'exception mais en désactivant le nouveau modèle de routage Core 2.2. Pouvez-vous me dire comment résoudre le problème sans désactiver cette fonctionnalité?
public IServiceProvider ConfigureServices(IServiceCollection services)
{
...
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2).AddControllersAsServices();
...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseMvc(b =>
{
b.Select().Expand().Filter().OrderBy().MaxTop(100).Count();
b.MapODataServiceRoute("odata", "odata", ODataConfig.GetEdmModel());
});
}
J'avais le même problème après la mise à niveau vers .net core 2.2 et j'ai constaté que .net core 2.2 a activé le routage des points de terminaison par défaut et ils ont la capacité de le désactiver comme ceci. Ça a marché pour moi.
services.AddMvc(options =>
{
options.EnableEndpointRouting = false;
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2));