首页 > 解决方案 > 将dotnet 4.5框架开发的web API 2.0转换为dotnet Core 2.1.4

问题描述

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

标签: .net.net-core

解决方案


由于您没有提供您遇到的任何特定代码问题,我们能做的最好的就是引导您访问microsoft docs,它提供了有关如何将 ASP.NET Web API 项目迁移到 ASP.NET Core 的说明和示例.

编辑1:

如果您不想重新编写 API,您可以查看这篇博文,其中详细介绍了如何将您的应用程序转换为 Core 并进行最少的更改。以下是所需内容的汇总列表。

  • 通过 nuget 将兼容性 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?}");
             });
         }
    

在第一个实例中将其与 shims/兼容性库进行转换是一个好主意,以节省时间并让您的应用程序运行。但从长远来看,我建议正确迁移它以使用 ASP.NET Core 习惯用法,以便充分利用最新功能、错误修复和性能改进。


推荐阅读