你如何将环境变量放在web.config中?

Jos*_*sey 17 asp.net-mvc connection-string web-config appsettings azure

我目前正在学习这些教程,并且我想从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>
Run Code Online (Sandbox Code Playgroud)

注意:我在本地测试中包含了configSource ="/ example /".

Ric*_*ard 26

对于应用程序,包括Web应用程序,在Windows上:

<appSettings>只是字符串.如果您希望扩展环境变量,您的应用程序将需要自己完成.

执行此操作的常用方法是使用cmd语法%variable%,然后使用它Environment.ExpandEnvironmentVariables来扩展它们.

在Azure上:

规则是不同的(请参阅问题中的链接):但值似乎在环境变量中,因此,在配置文件中:

<add key='SomeSetting' value='%APPSETTING_some_key%'/>
Run Code Online (Sandbox Code Playgroud)

然后检索:

var someSetting = Environment.ExpandEnvironmentVariables(
                     ConfigurationManager.AppSetting("SomeSetting"))
Run Code Online (Sandbox Code Playgroud)

可能会很好.