Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core DotNetCore 3.1中的配置使用双下划线';I don’好像没有我想象的那样工作_Asp.net Core_.net Core - Fatal编程技术网

Asp.net core DotNetCore 3.1中的配置使用双下划线';I don’好像没有我想象的那样工作

Asp.net core DotNetCore 3.1中的配置使用双下划线';I don’好像没有我想象的那样工作,asp.net-core,.net-core,Asp.net Core,.net Core,我正试图获得在ASP.Net core 3.1中工作的配置的双下划线,如下所述: 我已经为手动执行此操作的配置编写了一些代码 检查环境变量 检查AppSettings…json文件 但我在.NET3.1中看到,默认情况下,这应该得到支持,但unix平台上的分层设置有一个警告。在这种情况下,不能使用此语法 Configuration[“SomeSection:SomeConfig”] 解析此环境变量的步骤 ##环境变量 SomeConfig:SomeConfig 因为linux不支持环境变量名

我正试图获得在ASP.Net core 3.1中工作的配置的双下划线,如下所述:

我已经为手动执行此操作的配置编写了一些代码

  • 检查环境变量
  • 检查AppSettings…json文件
  • 但我在.NET3.1中看到,默认情况下,这应该得到支持,但unix平台上的分层设置有一个警告。在这种情况下,不能使用此语法

    Configuration[“SomeSection:SomeConfig”]
    
    解析此环境变量的步骤

    ##环境变量
    SomeConfig:SomeConfig
    
    因为linux不支持环境变量名称中的冒号。但是,如果将代码部署到windows计算机上,这将起作用。因此,.net似乎表明您可以使用这种语法

    Configuration[“SomeSection\uuuu SomeConfig”]
    
    这将解决以下任何配置

    //AppSettings…json
    {
    “部分”{
    “SomeConfig”:“某些值”
    }
    }
    

    linux上的环境变量 SomeConfig\uuu SomeConfig 或

    //windows上的环境变量
    SomeConfig:SomeConfig
    
    有人知道我做错了什么吗

    编辑:
    请注意,我知道这个问题的答案,如果重新打开,我会很乐意回答。

    我不理解文档。它的工作方式是在
    start.cs

    Configuration["SomeSection:SomeConfig"]
    
    它将正确地解决问题

    // AppSettings...json
    {
       "SomeSection" {
          "SomeConfig": "some value"
       }
    }
    
    从您的各种应用程序设置文件

    但是,如果您定义了一个名为
    SomeSection:SomeConfig
    的环境变量,则将使用该变量来代替AppSettings值,这是一个很好的特性。在docker容器中运行应用程序时,这通常是可取的

    但是,如果您在linux操作系统上,则无法创建名为
    SomeSection:SomeConfig
    的环境变量。因此,如果您在linux机器上或linux容器中,而不是使用
    \uuuu
    (双下划线)而不是
    来命名环境变量
    SomeSection\uu SomeConfig
    ,那么它将由

    Configuration["SomeSection:SomeConfig"]
    

    目前还不完全清楚,您现在遇到了什么问题以及上面的代码有什么问题
    Configuration[“SomeSection:SomeConfig”]
    不访问环境变量,它从
    SomeSection
    部分检索
    SomeConfig
    设置,无论该设置来自何处。这些值由配置提供程序提供,配置提供程序可能会从文件、数据库、命令行、服务等加载设置。因此,您似乎只想问环境变量提供程序在Linux中如何工作,以及环境变量名称如何根据您链接到的文档映射到配置设置,名为
    SomeSection\uuu SomeConfig
    的环境变量应能在所有平台上工作