我能够在我的环境中获取 Azure 环境变量。
请检查以下解决方法。
- 使用 MVC 创建了一个 .NET Framework 应用程序。
- 安装以下 NuGet 包
Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration
Microsoft.Configuration.ConfigurationBuilders.Environment
System.Configuration.ConfigurationManager
安装 NuGet 包的步骤
右键单击解决方案资源管理器 => 管理 NuGet 包 => 在浏览选项卡中搜索
- 在 Web.config 文件 => 在配置部分添加以下设置
<configSections>
<section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
</configSections>
<configBuilders>
<builders>
<add name="DefaultEnvironment" mode="Greedy" type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Environment" />
</builders>
</configBuilders>
<appSettings configBuilders="DefaultEnvironment">
<add key="GOOGLE_APPLICATION_CREDENTIALS" value="Set via an environment variable - for example, dev, test, staging, or production connection string." />
</appSettings>
-
Add the New App setting
in Azure Web App Configuration
Section.
-
最初是本地的web.config
文件包含appsettings
有一些默认值。现在我将使用 Azure 应用服务设置覆盖该值。
-
In HomeController
,编写以下代码。
public ActionResult Index()
{
var appsettings = ConfigurationManager.AppSettings;
var local = appsettings["GOOGLE_APPLICATION_CREDENTIALS"];
var production = Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS");
ViewBag.GOOGLE_APPLICATION_CREDENTIALS = local;
ViewBag.GOOGLE_APPLICATION_CREDENTIALS1 = production;
return View();
}
var appsettings = ConfigurationManager.AppSettings;
appsettings["GOOGLE_APPLICATION_CREDENTIALS"];
and
Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS");
- 在 Home => Index.cshtml 中,将以下代码片段添加到文件中的某处
<h2> @ViewBag.GOOGLE_APPLICATION_CREDENTIALS - Local Settings</h2>
<h2> @ViewBag.GOOGLE_APPLICATION_CREDENTIALS1 - Production Settings</h2>
Local App Output
Published App OutPut :
- 如您所见,本地设置被 Azure 应用程序设置覆盖。
参考文献取自MSDoc