web-dev-qa-db-ja.com

エンドポイントルーティングで「Microsoft.AspNet.OData.Routing.ODataRoute」を使用できません。 ASP Net Core 2.2の例外

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());
    });
}
14
Oscar Llop

.netコア2.2にアップグレードした後も同じ問題が発生していましたが、.netコア2.2ではデフォルトでエンドポイントルーティングが有効になっており、このように無効にする下位機能があります。それは私のために働いた。

services.AddMvc(options =>
                {
                  options.EnableEndpointRouting = false;
                })
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_2));
20
Ankit Patel