我目前是
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 /”.
解决方法
对于应用程序,包括Web应用程序,在Windows上:
< appSettings>中的值只是字符串.如果您希望扩展环境变量,您的应用程序将需要自己完成.
执行此操作的常用方法是使用cmd语法%variable%,然后使用Environment.ExpandEnvironmentVariables
扩展它们.
在Azure上:
规则是不同的(请参阅问题中的链接):但值似乎在环境变量中,因此,在配置文件中:
<add key='SomeSetting' value='%APPSETTING_some_key%'/>
然后检索:
var someSetting = Environment.ExpandEnvironmentVariables( ConfigurationManager.AppSetting("SomeSetting"))
可能会很好.