配置迁移到ASP.NET Core

将配置迁移到 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文件中来完全采用这种方法。

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文件添加到项目的根目录:

添加 AppSettings JSON

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