从 ASP.NET 到 ASP.NET Core 的增量迁移入门

对于大型迁移,建议设置代理原始 .NET Framework 应用的 ASP.NET Core 应用。 下图显示了已启用新代理的应用:

start migrating routes

要了解此方法在迁移过程中的帮助,请参阅从 ASP.NET 到 ASP.NET Core 的增量迁移。 本文的其余部分提供了继续增量迁移的步骤。

设置 ASP.NET Core 项目

对于 ASP.NET MVC 和 Web API 应用,请参阅了解如何从 ASP.NET MVC 和 Web API 升级为 ASP.NET Core MVC。 对于 ASP.NET Framework Web Forms 应用,请参阅了解如何从 ASP.NET Web Forms 升级为 ASP.NET Core

升级支持库

如果解决方案中有需要使用的支持库,应尽可能将其升级到 .NET Standard 2.0。 升级助手是执行此操作的出色工具。 如果库无法定位 .NET Standard,可以将 .NET 6 或更高版本与原始项目中的 .NET Framework 目标一起定位,或者在与原始项目一起的新项目中定位。

可以在这些库中使用这些适配器,从而支持在类库中使用System.Web.HttpContext。 要在库中启用使用System.Web.HttpContext

  1. 删除项目文件中对System.Web的引用
  2. 添加Microsoft.AspNetCore.SystemWebAdapters
  3. 启用多目标并添加 .NET 6 目标或更高版本,或者将项目转换为 .NET Standard 2.0。
  4. 确保目标框架支持 .NET Core。 如果 .NET Standard 2.0 不够用,可以使用多目标

此步骤可能需要根据解决方案结构更改多个项目。 升级助手可帮助确定哪些需要更改并自动执行过程中的多个步骤。

启用会话支持

会话是 ASP.NET 的常用功能,与 ASP.NET Core 中的一项功能同名,但 API 有很大不同。 请参阅有关会话支持的文档。

启用共享身份验证支持

可以使用System.Web适配器远程身份验证功能在原始 ASP.NET 应用和新 ASP.NET Core 应用之间共享身份验证。 此功能允许 ASP.NET Core 应用将身份验证延迟到 ASP.NET 应用。 有关更多详细信息,请参阅远程应用连接远程身份验证文档。

常规使用指南

适配器能够帮助更新 ASP.NET 和 ASP.NET Core 之间的许多差异。 但是,一些功能需要选择加入,因为它们会产生一些成本。 还有一些行为无法调整。 有关这些内容的列表,请参阅使用指南