将配置迁移到 ASP.NET Core

作者:Steve SmithScott 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放在文件中。

在 ASP.NET Core 中,web.config 文件也被替换。 现在可以将配置本身配置为应用程序启动过程的 Startup.cs一部分。 配置仍然可以利用 XML 文件,但通常 ASP.NET Core项目会将配置值JS置于 ON 格式的文件,例如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 文件添加到项目的根目录:

添加 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)以及环境变量。