azure - Azure 应用服务应用程序设置不覆盖 appsettings.json 值
问题描述
我有一个 React SPA,其中 .Net Core WebAPI 后端部署到 Azure App Service。在本地开发时,我使用 appsettings.json 文件来配置 WebAPI 后端。我正在为名为“XyzApi”的外部 api 设置一个键/值对。
{
"XyzApi": "https://somedomain/api"
}
在 WebAPI 控制器中,我使用配置提供程序访问此配置设置。
var xyzApiUrl = Configuration["XyzApi"]
这工作正常。
当我将应用程序部署到应用程序服务时,我需要更改“XyzApi”的值以使用新值覆盖 appsettings.json 中的值。我在 Azure 的应用服务应用程序设置部分添加了一个名为“XyzApi”的键/值对。
在应用程序设置的应用服务文档中,它说该值将作为名为“APPSETTING_XyzApi”的环境变量公开给配置。它还说它应该覆盖 appsettings.json 文件中键“XyzApi”的值。
当应用程序启动时。问题是“XyzApi”的值仍设置为 appsettings.json 文件中的值。它没有被覆盖。正如预期的那样,“APPSETTING_XyzApi”现在有一个新的键/值对。
为什么 Azure 应用服务没有使用 Azure AppService 应用程序设置中配置的新值覆盖 appsettings.json 文件中的键/值对。
这是配置配置提供程序的代码。
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureAppConfiguration((hostingContext, config) =>
{
var env = hostingContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json",
optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
});
}
解决方案
推荐阅读
- java - 如何配置 IntelliJ IDEA 以使用 omp4j java 编译器/预处理器?
- python - 我们在python中预处理文本后如何删除空值
- java - 在 Spring Boot 2.1.2 上更改文件上传的大小限制
- python - 我想从列表中创建一个集合,在运行时将项目插入其中。我正在尝试这种方式
- angular - 如何使用 Angular 创建 Tizen Web 应用程序项目?
- java - 如何将对话框片段值从对话框返回到主要活动?
- javascript - 如何仅从 vue 路由器中提取路由以生成站点地图
- python - 如何在 query_entities 上使用过滤器
- python - 熊猫根据条件反转数字
- r - R:根据不同列的顺序重新排序列