如何将 Azure 应用程序配置与 .Net Framework 4.7.1 MVC 应用程序一起使用

How to use Azure App Configuration with .Net Framework 4.7.1 MVC app

我想在 .Net Framework MVC Web 应用程序中使用 Azure 应用程序配置存储。我添加了对 Microsoft.Extensions.Configuration.* 程序集的引用。目标是我现有的调用 ConfigurationManager.AppSettings["key"] 的代码应该继续工作,并在可用时从 Azure 中简单地检索值。

我已经在 web.config 中注册了一个新的 configBuilder,因此:

<add name="MyConfigStore" mode="Greedy" connectionString="xxx" type="Microsoft.Configuration.ConfigurationBuilders.AzureAppConfigurationBuilder, Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration" />

这在运行时有效。但是,在应用程序初始化期间,在 Startup.cs 或 Global.asax 中或构建我的 DI 容器时,找不到 Azure 配置值。 Azure configBuilder 似乎尚未注册。如果我明确地从 Azure 中检索值,它就可以工作。如果我只是调用 ConfigurationManager.AppSettings,它不起作用。

IConfigurationRoot configuration = new ConfigurationBuilder()
    .AddAzureAppConfiguration(options =>
    {
        options.Connect(ConfigurationManager.AppSettings["AzureConfigConnString"])
            .UseFeatureFlags();
    }).Build();

//THIS WORKS
var someValue = configuration["key"];

//THIS DOES NOT WORK
someValue = ConfigurationManager.AppSettings["key"];

如何注册 Azure configBuilder 以便在启动期间使用它?所有示例似乎都是针对 .Net Core 的,它们使用我的项目中不存在的 CreateHostBuilder()。

回答我自己的问题。问题是我需要参考:

Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration

没有

Microsoft.Extensions.Configuration.AzureAppConfiguration.

我还需要 web.config 中 AppSettings 节点的 configBuilders 属性。之后就不需要启动代码了。