[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与配置系统的集成的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core (.NET Core) and ASP.NET Core (.NET Framework)区别

Asp.NET Core进阶 第四篇 Asp.Net Core Blazor框架

Asp.Net core (Full .Net framework) vs Asp.Net core (.Net Core) 性能

.NET Core 1.0ASP.NET Core 1.0和EF Core 1.0简介

asp.net core 注入后仍然报错?

深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NET Core 内部到底是如何运行的