将配置迁移到 ASP.NET CoreMigrate configuration to ASP.NET Core
本文内容
作者:Steve Smith 和 Scott Addie
在前面的文章中,我们开始将ASP.NET mvc 项目迁移到 ASP.NET CORE mvc。本文将迁移配置。
设置配置Setup configuration
ASP.NET Core 不再使用以前版本的 ASP.NET 使用的global.asax__和 web.config 文件。在早期版本的 ASP.NET 中,应用程序启动逻辑放置在global.asax内的 ApplicationStartUp
方法中。稍后,在 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 迁移配置设置Migrate configuration settings from 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更改为数据库的名称。
总结Summary
ASP.NET Core 将置于单个文件,在其中的必要的服务和依赖项可以定义和配置应用程序的所有启动逻辑。它将 web.config 文件替换为灵活的配置功能,该功能可利用各种文件格式(如 JSON)以及环境变量。