将dotnet 4.5框架中开发的web API 2.0转换为dotnet Core 2.1.4

时间:2018-05-05 15:50:38

标签: .net .net-core

我对点网核心不太了解。我有webapi 2.0服务,我想在dotnet核心2.1.4转换。这背后的目的是我想在Linux而不是Windows环境中托管它(节省成本)。我通过互联网搜索并找到了类似项目的方式 - >属性 - >构建并更改dotnet框架7.0的框架。我不确定这种方法是否能完全发挥作用。目前我没有Linux托管,所以我无法测试它是否可行。将4.5框架Web API 2.0应用程序转换为dotnet核心2.1.4的正确方法是什么?此应用程序使用EF 6.0进行数据库操作

1 个答案:

答案 0 :(得分:1)

由于您没有提供您遇到的任何特定代码问题,我们所能做的最好的事情就是引导您microsoft docs,它提供了解释以及如何迁移ASP的示例.NET Web API项目到ASP.NET Core。

编辑1:

如果您不想重新编写API,可以查看this blob post详细说明如何将应用转换为Core,只需进行少量更改。以下是所需内容的总结清单。

  • 通过nuget将compatibility shim添加到您的项目中,以便您可以继续使用ApiController。
  • 在Startup.cs中添加服务,以在操作返回类型中使用WebApi约定,例如HttpResponseMessage。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().AddWebApiConventions();
    }
    
  • 添加路由

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            app.UseMvc(routes =>
            {
                routes.MapWebApiRoute("DefaultApi", api/{controller}/{id?}");
            });
        }
    

最好在第一个实例中使用填充程序/兼容性库进行转换,以节省时间并使应用程序运行。但从长远来看,我建议正确迁移它以使用ASP.NET Core惯用语,以便充分利用最新功能,错误修复和性能提升。