[Asp.Net Core]Asp.Net Core与配置系统的集成

Posted 厦门德仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Asp.Net Core]Asp.Net Core与配置系统的集成相关的知识,希望对你有一定的参考价值。

Asp.net Core默认添加的配置提供者

1)加载现有的Iconfiguration
2)加载项目根目录下的appsettings.json
3)加载项目根目录下的appsettings.Enviroment
4)当程序运行在开发环境下,程序会加载“用户机密”配置
5)加载环境变量中的配置
6)加载命令行

配置的环境问题

  1. Why?开发环境,测试环境,生产环境需要进行不同的配置
  2. 运行环境:Asp.NET Core 会从环境变量中读取名字
    ASP.NETCORE_ENVIRONMENT的值。
    推荐值:
    Development(开发环境),Staging(测试环境),Production(生产环境)
  3. 读取方法:app.Enviroment.EnvironmentName,app.Environment.IsDevelopment()….
  4. 在Windows和VS(推荐开发时用)中设置环境变量的方法。

演示代码

    [ApiController]
    [Route("[controller]")]
    public class TestController : Controller
    
        [HttpGet]
        public string Demo() 
        
           return Environment.GetEnvironmentVariable("dezai");
        
    

1.系统环境变量

修改环境变量时,因为变量是与进程相关。重新运行运用程序经常并没有改变读取环境变量不会是最新的,需要重新启动VS。

2. 项目调试配置

只需要重新启动程序

3.启动程序读取环境变量

Console.WriteLine(app.Environment.EnvironmentName);
Console.WriteLine(app.Environment.IsDevelopment());
Console.WriteLine(app.Environment.IsProduction());

4.Controller读取当前的配置

Environment 属于IWebHostEnvironment类型,所以只需要在控制器中注入IWebHostEnvironment。

        private readonly IWebHostEnvironment webEnv;
 
        public TestController(IWebHostEnvironment webEnv)
        
            this.webEnv = webEnv;
        
        [HttpGet]
        public string Demo1()
        
            return webEnv.EnvironmentName;
        

以上是关于[Asp.Net Core]Asp.Net Core与配置系统的集成的主要内容,如果未能解决你的问题,请参考以下文章