web-dev-qa-db-ja.com

環境変数をweb.configにどのように配置しますか?

私は現在 これらのチュートリアルに従って で、AzureのWebアプリケーションのアプリケーション設定からクリアテキスト文字列を呼び出したいと思っています。私は環境変数が 非設定ファイルに使用される であるという印象を受けています。ただし、web.configファイルにも同じ方法を使用したいと考えています。

  <connectionStrings configSource="/config/ConnectionStrings.config">
    <add name="DefaultConnection" connectionString="@Environment.GetEnvironmentalVariable('SQLAZURECONNSTR_DefaultConnection')" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings file="config\AppSettingsSecret.config">
    <!-- Code Removed for Conciseness-->
    <add key="mailAccount" value="@Environment.GetEnvironmentalVariable('APPSETTING_mailAccount')" />
    <add key="mailPassword" value="@Environment.GetEnvironmentalVariable('APPSETTING_mailPassword')" />
    <!-- Twilio-->
    <add key="TwilioSid" value="@Environment.GetEnvironmentalVariable('APPSETTING_TwilioSid')" />
    <add key="TwilioToken" value="@Environment.GetEnvironmentalVariable('APPSETTING_TwilioToken')" />
    <add key="TwilioFromPhone" value="@Environment.GetEnvironmentalVariable('APPSETTING_TwilioFromPhone')" />
  </appSettings>

注:ローカルテスト用にconfigSource = "/ example /"を含めました。

20
Joseph Casey

WindowsのWebアプリケーションを含むアプリケーションの場合:

<appSettings>の値は単なる文字列です。環境変数を拡張したい場合は、アプリケーションでそれを行う必要があります。

これを行う一般的な方法は、cmd構文%variable%を使用し、次に Environment.ExpandEnvironmentVariables を使用して展開します。

Azureの場合:

ルールは異なります(質問のリンクを参照):値は環境変数にあるように見えるため、構成ファイルでは次のようになります。

<add key='SomeSetting' value='%APPSETTING_some_key%'/>

次に取得する:

var someSetting = Environment.ExpandEnvironmentVariables(
                     ConfigurationManager.AppSetting("SomeSetting"))

うまくいくかもしれません。

26
Richard