将配置迁移到 ASP.NET Core
在上一篇文章中,我们开始将 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
文件中。
在 ASP.NET Core 中,web.config 文件也被替换。 现在可以对配置本身进行配置,作为 Startup.cs
中描述的应用程序启动过程的一部分。 配置仍然可以使用 XML 文件,但 ASP.NET Core 项目通常会将配置值放在 JSON 格式的文件中,例如 appsettings.json
。 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.json
文件添加到项目的根目录:
从 web.config 迁移配置设置
我们的 ASP.NET MVC 项目在 web.config 的 <connectionStrings>
元素中包含了所需的数据库连接字符串。 在我们的 ASP.NET Core 项目中,我们将此信息存储在 appsettings.json
文件中。 打开 appsettings.json
,注意它已经包含以下内容:
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=_CHANGE_ME;Trusted_Connection=True;"
}
}
}
在上述突出显示的行中,将数据库名称从 _CHANGE_ME 更改为你的数据库名称。
摘要
ASP.NET Core 将应用程序的所有启动逻辑放在一个文件中,你可以在其中定义和配置必要的服务和依赖项。 它将 web.config 文件替换为灵活的配置功能,该功能可以利用各种文件格式(例如 JSON)和环境变量。