【问题标题】:How do you put environmental variables in web.config?你如何将环境变量放在 web.config 中?
【发布时间】:2015-06-07 14:32:28
【问题描述】:

我目前是 Following these tutorials,我想从 Azure 的 Web 应用程序设置中调用明文字符串。我的印象是环境变量是used for non-config files。但是,我想对 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/" 用于本地测试。

【问题讨论】:

  • 配置文件不允许这样的代码。您必须使用 %APPSETTING_something% 语法并在读取值时将其展开。顺便说一句,你见过 web.config 转换吗?这是为不同环境设置值的公认方法:msdn.microsoft.com/en-us/library/vstudio/…

标签: asp.net-mvc azure web-config connection-string appsettings


【解决方案1】:

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

&lt;appSettings&gt; 中的值只是字符串。如果您希望扩展环境变量,您的应用程序需要自己进行。

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

在 Azure 上:

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

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

然后去检索:

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

可能会很好。

【讨论】:

  • 不会是CloudConfigurationManager.AppSetting吗?
猜你喜欢
  • 2023-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-04
  • 2018-04-23
  • 1970-01-01
  • 1970-01-01
  • 2021-01-12
相关资源
最近更新 更多