将配置迁移到 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 文件添加到项目的根目录:

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