• .net ASPNETCORE_ENVIRONMENT 根据环境切换不同的配置文件


    调整program.cs文件中的CreateHostBuilder方法

    //从hostingContext.HostingEnvironment.EnvironmentName中获取对应的环境名称
     public static IHostBuilder CreateHostBuilder(string[] args)
            {
                return Host.CreateDefaultBuilder(args)
                    .ConfigureAppConfiguration((hostingContext,config) =>
                    {
                        config.Sources.Clear();
                        var env = hostingContext.HostingEnvironment;
                        config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                              .AddJsonFile($"appsettings.{env.EnvironmentName}.json",
                                             optional: true, reloadOnChange: true);
    
                        Console.WriteLine($"appsettings.{env.EnvironmentName}.json");
    
                        config.AddEnvironmentVariables();
    
                        if (args != null)
                        {
                            config.AddCommandLine(args);
                        }
                    })
                    .UseContentRoot(AppDomain.CurrentDomain.BaseDirectory)
                    .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder
                        .UseUrls($"http://{ip}:{port}")
                        .UseStartup<Startup>()
                        ;
                    })
                    .UseWindowsService();
            }
    

    hostingContext.HostingEnvironment对象下包含四个可以判断当前环境的方法

    IsDevelopment()
    IsStaging()
    IsProduction()
    IsEnvironment()

    可以通过配置环境变量(windows中为系统变量) ASPNETCORE_ENVIRONMENT 来切换环境

    另外也可以通过修改launchSettings.json文件中的environmentVariables来读取不同的配置

    通过AddJsonFile添加的顺序需要格外注意,在底层通过ConfigurationRoot的索引获取值的时候会倒序取出第一个配置文件然后将值返回。
    所以需要先添加默认的appsetting.json然后再添加具体的环境配置。

    [参考]
    ASP.NET CORE 根据环境变量支持多个 appsettings.json

  • 相关阅读:
    HDU
    hdu-1260 tickets
    hdu-1024 Max Sum Plus Plus
    spfa+链式前向星模板
    kafka-伪集群搭建
    elasticsearch-安装-centos7- es7.5 搭建
    elk-安装 通过docker
    kibana-安装-通过docker
    logstash -grok插件语法介绍
    docker 启动redis/nginx
  • 原文地址:https://www.cnblogs.com/ives/p/16548240.html
Copyright © 2020-2023  润新知