簡體   English   中英

Azure 環境變量如何覆蓋 web.config 值?

[英]Azure Environmental Variables how to override web.config value?

我正在 .net 核心 web api 上進行 dotnet 發布,它生成了一個Z2567A58EC9705EB7AC2CE下面這對開發人員來說很好,因為 RayGunKey 是正確的值,但是當我將它放在臨時環境中時,它仍然具有“SOME-KEY-HERE”值! 即使我在 staging web api's 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而不是使用在發布命令中創建的那個?

我目前正在使用以下代碼,它似乎確實從web.config中提取了值,但正如我所說,我想從 azure 應用程序設置(環境變量)中提取它

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

我經常對環境變量感到困惑,尤其是在這種情況下。 直接調用azure中的應用程序設置和其他地方的環境變量不直觀!

提前謝謝了

好的,所以我必須專注於launchSettings.json並在那里添加我的環境變量,它看起來是放置它們的好地方。 然后 Visual Studio 創建 web.config 文件並使用 launchSettings.json 文件中定義的這些值填充它。 這似乎很糟糕,因為現在當我執行dotnet 發布時,文件將在其中定義最后的 web.config 值。 在這種情況下,將放在暫存區的開發細節。 即使我嘗試在暫存時創建環境變量,據說 web.config 優先,因此不會看到該值。

相反,我使用appsetting來配置它,所以唯一驅動配置的是launchSettings.json ASPNETCORE_ENVIRONMENT值。 運行應用程序時,它將查看此環境變量並在本例中獲取適當命名的 appsettings appsettings.Staging.json

只要我確保在我的每個環境(例如開發、暫存和生產)上都設置了此項,它就會從 appsettings..json 文件中讀取配置。請參閱如何執行此操作的屏幕截圖。 我也不再使用 Environment.GetEnvironmentVariable 了。

在此處輸入圖像描述

在我看來,這似乎是對曾經簡單得多的事情的正確處理和過度復雜化

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM