ASP NET Web API项目框架升级到Core 2.2版本后,OData路由配置失败。它抛出“无法将 'Microsoft.AspNet.OData.Routing.ODataRoute' 与端点路由一起使用。”异常(exception)。
链接 https://github.com/Microsoft/aspnet-api-versioning/issues/361展示了如何避免异常但禁用新的 Core 2.2 路由模型。您能告诉我如何在不停用此功能的情况下解决问题吗?
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());
});
}
最佳答案
升级到 .net core 2.2 后我遇到了同样的问题,发现 .net core 2.2 默认启用了端点路由,并且它们具有像这样禁用它的向后功能。它对我有用。
services.AddMvc(options =>
{
options.EnableEndpointRouting = false;
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2));
关于asp.net-core - 不能将 'Microsoft.AspNet.OData.Routing.ODataRoute' 与端点路由一起使用。 ASP Net Core 2.2 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53759817/