ASP.NET Core配置文件
ASP.NET Core中有几个重要的文件需要自行去了解:appsettings.json、appsettings.Production.json、appsettings.Development.json、launchsettings.json。
appsettings.json:我们可以在appsettings.Development.json和appsettings.Production.json分别设置相应的配置信息,比如数据库连接
appsettings.Production.json:里面当前项目的生产环境的数据库连接字符串。
appsettings.Development.json:配置文件中配置我们开发环境的数据库连接字符串
launchsettings.json
自定义配置JSON:有时候一个复杂的项目配置信息比较多,Appsettings.json会很复杂*,*所以一般都会把一些单独分离出来,比如将数据库连接配置分离出来。
读取配置
程序会按照以下顺序加载/读取配置(优先级):环境变量 > appsettings.json(development.json、Production)> appsettings.json > DB ENV(配置中心)
(这个对吗!?下面这个)
读取各种配置源的默认顺序:appsettings.json > appsettings.{Environment}.json > 用户机密 > 环境变量 > 命令行参数
如何在appsettings.json中读取这些配置(比如在项目中需要读取 appsettings.Development.json中的数据库连接字符串)/.NET Core类库项目中如何读取appsettings.json中的配置:在Startup.cs中去写依赖注入https://www.cnblogs.com/OFSHK/p/14450868.html
访问 Startup 类中的配置信息:请注入框架提供的 IConfiguration
服务。Startup
类位于 startup. cs 文件中。这又涉及到了依赖注入相关的知识。在 asp. net Core 中, 依赖注入是不可或缺的一部分。依赖注入能使我们能够创建低耦合、可扩展且易于测试的系统。
Program.cs中的环境变量
ASP.NET Core是一个全新的Web开发平台,微软在它上面构建了MVC等Web框架。
appsettings.json
在开发项目的过程当中,生产环境与调试环境的配置是不一样的,比如连接字符串这种东西,开发环境肯定不能连生产数据库。之前需要准备两个同名的配置文件来处理很麻烦。现在ASP .NET Core支持利用环境变量来动态配置 JSON 文件、来控制项目连接的是哪一个环境,并且通过这种环境变量也获取到不同的数据库连接字符串。
ASP.NET Core控制环境切换最核心的东西是Program.cs中的 环境变量ASPNETCORE_ENVIRONMENT
,它直接控制当前应用程序运行的环境类型。 ASPNETCORE_ENVIRONMENT设置为Development,调试的时候就会读取appsettings.Development.json的数据;设置为Production,调试的时候就会读取appsettings.Production.json的数据。
此环境变量框架默认提供了三个值(也可以定义其它值):Development
(开发环境)、Staging
(预演环境)、Production
(生产环境 默认值)
-
可以在在项目中添加对应的
appsettings.Development.json
、appsettings.Production.json
和appsettings.Staging.json
。 -
项目默认生成的
appsettings.json
用来存放公共配置,当我们设置Development
环境时,最终的配置项是appsettings.Development.json
和appsettings.json
求并集的结果,若两文件有同名配置项则以appsettings.Development.json为准,其他环境同理。 -
无论
ASPNETCORE_ENVIRONMENT
设置为Development、Staging、Production,只要项目中有appsettings.Production.json,那项目发布后运行时默认会读取Production的配置。无论 ASPNETCORE_ENVIRONMENT设置为Development、Staging、Production,只要项目中没有appsettings.Production.json那项目发布后运行时就会仅读取appsettings.json的配置。
如果在发布后动态设置环境变量,可以通过修改web.config的方式来实现,Core项目中默认是没有web.config文件的,但是发布后会生成一个web.config文件,我们可以通过添加 environmentVariable
节点来设置环境变量:
launchsettings.json文件
-
运行ASP.NET Core项目时,使用此文件中的设置。
-
仅用于本地开发环境。我们不需要把它发布到生产环境的Asp.net Core 程序中。不会上传到gitlab?
-
自己的Asp.Net Core 应用程序在发布和部署应用程序时使用某些独立的设置,可以把它们存储在appsettings.json文件中。我们通常将应用程序的配置信息存储在此文件中,比如数据库连接字符串。
-
还可以使用不同环境的appsettings.json文件。例如,appsettings.Staging.json用于临时环境。在- ASP.NET Core中,除了appsettings.json文件外,我们还可以配置源,如环境变量,用户密钥,命令行参数。创建属于我们自己的自定义配置源。
-
launchSettings.json
文件中的设置 环境变量“ASPNETCORE_ENVIRONMENT”设置的默认设置为“Development”。我们可以将此值更改为Staging或Production
,具体取决于我们是在Staging还是Production
环境中运行此项目。我们还可以添加新的环境变量。这些环境变量在我们的Asp.Net Core应用程序中都可用,我们可以包含根据这些环境变量的值有条件地执行的代码。