【问题标题】:Convert web API 2.0 developed in dotnet 4.5 framework to dotnet Core 2.1.4将dotnet 4.5框架开发的web API 2.0转换为dotnet Core 2.1.4
【发布时间】:2018-10-15 21:46:17
【问题描述】:

我不太了解 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


    【解决方案1】:

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

    编辑 1:

    如果您不想重新编写您的 API,您可以查看 this blog 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?}");
               });
           }
      

    最好首先使用 shims/兼容性库进行转换,以节省时间并让您的应用运行。但从长远来看,我建议正确迁移它以使用 ASP.NET Core 习惯用法,以便充分利用最新功能、错误修复和性能改进。

    【讨论】:

    • 这非常有用。我的代码将所有响应作为 httpResponseMessage 返回,它是“System.Net.Http.Http”命名空间的一部分。 Dotnet 核心是否支持这种类型的消息?
    • 是的,这在 .NET Core 中受支持:docs.microsoft.com/en-us/dotnet/api/…
    猜你喜欢
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 2018-04-05
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多