azure - 如何将 Azure 应用配置与 .Net Framework 4.7.1 MVC 应用一起使用
问题描述
我想在 .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 属性。在此之后,启动代码就不需要了。
推荐阅读
- excel - 图片类的粘贴/剪切方法在excel vb.net中失败
- jmeter - 为用户随机化用户名和相关的作业 ID
- reactjs - 将 react 与 django 集成
- c# - WPF:当 CollectionChanges 时绑定中断 - 为什么?
- laravel - 如何解决 Laravel + Nuxt.js 中的 CORS 错误
- c# - 什么是 Quaternion ,以及如何统一使用 Quaternion lerp?
- xcode - 安装 cocoapods 时出错/或如何安装 1.10.0 版本或最新版本的 cocoapods?
- python - 我怎样才能访问这个类的数据
- amazon-cloudformation - 删除并重新创建 cloudformation 堆栈后,我收到一条错误消息 api key 已存在但它不存在
- javascript - Webpack:在配置中引用当前正在处理的文件名