I am currently Following these tutorials, and I am wanting to call the clear text string from Azure's Application Settings for Web Apps. I am under the impression that environmental variables are used for non-config files. However, I am wanting to use the same methodology for web.config files.
<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>
Note: I included the configSource="/example/" for local testing.
The values in <appSettings>
are just strings. If you want environmental variables to be expanded your application will need to do that itself.
A common way of doing this is to use the cmd
syntax %variable%
and then using Environment.ExpandEnvironmentVariables
to expand them.
The rules are different (see links in the question): but the values appear to be in environment variables so, in the config file:
<add key='SomeSetting' value='%APPSETTING_some_key%'/>
and then to retrieve:
var someSetting = Environment.ExpandEnvironmentVariables(
ConfigurationManager.AppSetting("SomeSetting"))
may well work.