ASP NET Web APIプロジェクトフレームワークをCore 2.2バージョンにアップグレードした後、ODataルート構成は失敗します。エンドポイントルーティングで「Microsoft.AspNet.OData.Routing.ODataRoute」を使用できません。 「例外。
リンク 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コア2.2にアップグレードした後も同じ問題が発生していましたが、.netコア2.2ではデフォルトでエンドポイントルーティングが有効になっており、このように無効にする下位機能があります。それは私のために働いた。
services.AddMvc(options =>
{
options.EnableEndpointRouting = false;
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2));