- 概述
- 新增功能
- 基础知识
- 测试、调试和疑难解答
- 低版本升级迁移
将配置迁移到 ASP.NET Core
作者:Steve Smith 和 Scott Addie
在前面的文章中,我们开始将ASP.NET mvc 项目迁移到 ASP.NET CORE mvc。 本文将迁移配置。
安装程序配置
ASP.NET Core 不再使用以前版本的 ASP.NET 使用的global.asax 和 web.config 文件。 在早期版本的 ASP.NET 中,应用程序启动逻辑放置在global.asax内的 Application_StartUp
方法中。 稍后,在 ASP.NET MVC 中, Startup.cs文件包含在项目的根目录中;并在应用程序启动时调用。 ASP.NET Core 通过将所有启动逻辑放在Startup.cs文件中来完全采用这种方法。
Web.config文件也已替换为 ASP.NET Core。 配置本身现在可以配置为Startup.cs中所述的应用程序启动过程的一部分。 配置仍可利用 XML 文件,但通常 ASP.NET Core 项目会将配置值放入 JSON 格式的文件中,如appsettings。 ASP.NET Core 的配置系统还可以轻松地访问环境变量,从而为特定于环境的值提供更安全、更可靠的位置。 对于不应签入源控件的机密(如连接字符串和 API 密钥),尤其如此。 若要详细了解 ASP.NET Core 中的配置,请参阅配置。
对于本文,我们将从上一篇文章中的部分迁移 ASP.NET Core 项目开始。 若要设置配置,请将以下构造函数和属性添加到位于项目根目录中的Startup.cs文件:
public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; }
请注意,此时, Startup.cs文件不会进行编译,因为我们仍需要添加以下 using
语句:
using Microsoft.Extensions.Configuration;
使用适当的项模板,将appsettings文件添加到项目的根目录:
从 web.config 迁移配置设置
在 <connectionStrings>
元素中,我们的 ASP.NET MVC 项目包含web.config 中所需的数据库连接字符串。 在 ASP.NET Core 项目中,我们要将此信息存储在appsettings文件中。 打开appsettings,注意它已经包含以下内容:
{ "Data": { "DefaultConnection": { "ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;" } } }
在上面所示的突出显示的行中,将数据库的名称从 _CHANGE_ME更改为数据库的名称。
总结
ASP.NET Core 将应用程序的所有启动逻辑放在一个文件中,可以在其中定义和配置所需的服务和依赖项。 它将 web.config 文件替换为灵活的配置功能,该功能可利用各种文件格式(如 JSON)以及环境变量。