Azure环境变量如何覆盖web.config值?

时间:2020-06-03 07:42:48

标签: azure asp.net-core environment-variables

我正在在.net核心网络api上发布dotnet,它生成了一个 web.config ,如下所示。由于RayGunKey是正确的值,因此对开发人员来说效果很好,但是当我将其放在暂存环境中时,它仍然具有“ SOME-KEY-HERE”值!即使我在登台Web api的 Configuration -> Application Settings 下创建了 RayGunKey (具有不同的值)。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\MyApi.dll" stdoutLogEnabled="false" hostingModel="InProcess" stdoutLogFile=".\logs\stdout">
        <environmentVariables>
          <environmentVariable name="ASPNETCORE_HTTPS_PORT" value="44392" />
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
          <environmentVariable name="RayGunKey" value="SOME-KEY-HERE" />
          <environmentVariable name="COMPLUS_ForceENC" value="1" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

我没有配置启动文件吗?如何获取暂存 RagGunKey 而不是使用在publish命令中创建的暂存器?

我当前正在使用以下代码,该代码的确从 web.config 提取了该值,但是正如我所说的,我想从azure应用程序设置(环境变量)中提取该值< / p>

var rayGunKey = Environment.GetEnvironmentVariable("RayGunKey");

我经常被环境变量弄糊涂,在这种情况下尤其如此。直接在其他地方的天蓝色和环境变量中调用应用程序设置并不直观!

非常感谢

1 个答案:

答案 0 :(得分:0)

好,所以我必须专注于 launchSettings.json ,并在其中添加我的环境变量,在这里看起来像是放置它们的好地方!然后,Visual Studio创建web.config文件,并使用launchSettings.json文件中定义的这些值填充它。就像现在当我进行 dotnet发布时,该文件似乎已被破坏,该文件将具有定义的最后一个web.config值。在这种情况下,开发人员将详细介绍暂存阶段。即使我尝试在暂存中创建环境变量,据说web.config还是优先考虑的,因此不会看到该值。

相反,我使用 appsetting 进行配置,因此唯一导致配置的因素​​是 launchSettings.json ASPNETCORE_ENVIRONMENT 值。在运行应用程序时,它将查看此环境变量,并在这种情况下获取适当命名的appsettings appsettings.Staging.json

只要我确保在我的每个环境中都设置了此设置,例如到Develeopment,Staging和Production,然后它将从appsettings..json文件的配置中读取。请参见有关此操作的屏幕截图。我也不再使用Environment.GetEnvironmentVariable。

enter image description here

在我看来,这就像是一次正确的尝试,而过去曾经更简单的事情却变得复杂

相关问题