欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

为什么ASP.NET Core 数据库连接串的值和appsettings.json配的不一样?

程序员文章站 2022-12-20 09:37:19
一、配置读取顺序asp.net core 中的配置是使用一个或多个配置提供程序执行的,配置提供程序使用各种配置源从键值对读取配置数据。asp.net core 提供了大量可用的配置提供程序,这还不包括...

一、配置读取顺序

asp.net core 中的配置是使用一个或多个配置提供程序执行的,配置提供程序使用各种配置源从键值对读取配置数据。

asp.net core 提供了大量可用的配置提供程序,这还不包括可以自定义配置提供程序。

添加配置提供程序的顺序很重要,因为后面的提供程序添加的配置值将覆盖前面的提供程序添加的值。

配置提供程序的典型顺序为:

  • appsettings.json
  • appsettings.environment.json
  • 用户机密
  • 环境变量
  • 命令行参数

假如,appsettings.json配置了开发环境的数据库连接串,appsettings.production.json配置了生产环境的数据库连接串;管理员密码仅配置在用户机密中。

最终生产环境的配置为:

来源
数据库连接串 appsettings.production.json
管理员密码 用户机密

二、分析

iconfigurationroot 接口的文档上,可以了解到,iconfigurationroot是表示 iconfiguration 层次结构的根。

使用iconfigurationroot.providers可以得到ienumerable,猜测应该是顺序排列的。

然后反向遍历providers,读取配置key对应的值,如果存在那应该就是配置的来源了。

让我们验证一下。

三、演示

1.读取providers

创建webapplication1,修改startup.cs,代码如下:

从下图看到,顺序应该是正确的:

为什么ASP.NET Core 数据库连接串的值和appsettings.json配的不一样?

2.读取配置值

继续修改startup.cs,代码如下:

运行后查找allowedhosts配置,返回结果正确。

为什么ASP.NET Core 数据库连接串的值和appsettings.json配的不一样?

再次查找allowedhosts配置,返回结果正确。

为什么ASP.NET Core 数据库连接串的值和appsettings.json配的不一样?

到此这篇关于为什么数据库连接串的值和appsettings.json配的不一样?的文章就介绍到这了,更多相关数据库连接串的值和appsettings.json配置内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!