.net - 将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 进行数据库操作
解决方案
由于您没有提供您遇到的任何特定代码问题,我们能做的最好的就是引导您访问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 习惯用法,以便充分利用最新功能、错误修复和性能改进。
推荐阅读
- java - 使用java在树中添加多个孩子
- python - PIP3 与错误的 python 版本相关联
- windows-10 - Git Bash 命令被勒索软件保护阻止
- c - 可能使某些应用程序崩溃的最小字符串长度
- typescript - 打字稿 | 通过引用调用函数不起作用
- python - 视图 ProjectManagementapp.views.product_insert_view 没有返回 HttpResponse 对象。它返回 None 而不是
- javascript - rss 格式不正确(无效令牌) - ReactJS
- flutter - 如何将数据传递给有状态的小部件
- laravel - Laravel:生产路径和本地路径的区别;需要使用公共/
- python - 如何使用 cpython 将结构数组传递给 DLL 函数?