You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Configuration无法加载密钥,.NET 6 Web应用获取配置为空

.NET 6 Web应用加载Azure App Configuration返回空值的排查点
  • 配置源加载时机错误
    你的代码中先调用了config.Build(),再添加Azure App Configuration源。Build()会生成配置根实例,后续添加的配置源不会被纳入最终配置集合。
    解决:移除var settings = config.Build();这行代码,框架会自动处理配置构建,无需手动提前执行。修改后代码:

    builder.WebHost.ConfigureAppConfiguration((ctx, config) =>
    {
        if (ctx.HostingEnvironment.IsDevelopment())
        {
            config.AddAzureAppConfiguration(c=>
            {
                c.Connect(ConnectionString);
            });
        }   
    });
    
  • 当前运行环境非Development
    代码仅在IsDevelopment()为true时加载Azure App Configuration,若当前应用运行环境是生产/预发布等非开发环境,将不会加载该配置源。
    解决:检查launchSettings.json中的ASPNETCORE_ENVIRONMENT值,或服务器环境变量,确认运行环境;若需在其他环境加载,调整条件判断逻辑即可。

  • Azure键结构与代码不匹配
    根据你提供的Azure App Configuration键值对截图,确认其中键的前缀为Rental:Settings层级,需保证键名与代码中GetSection("Rental:Settings")完全一致,同时注意大小写敏感性(跨环境部署时需统一大小写规则)。

  • 未指定配置筛选规则
    若Azure App Configuration中存在大量键值对,可通过Select方法精准加载目标前缀的配置,避免遗漏或无关配置干扰:

    config.AddAzureAppConfiguration(c=>
    {
        c.Connect(ConnectionString)
         .Select("Rental:Settings:*"); // 加载所有以Rental:Settings为前缀的键
    });
    
  • AppSettings类结构不匹配
    检查AppSettings类的属性是否与Azure中的键值对完全对应:比如Azure中有Rental:Settings:MaxRentDays,则AppSettings类需包含同名同类型的MaxRentDays属性。示例类结构:

    public class AppSettings
    {
        public int MaxRentDays { get; set; }
        // 其他对应属性
    }
    
  • Azure配置访问权限异常
    确认使用的ConnectionString具有读取权限(需为Azure App Configuration的只读或读写密钥),若密钥无效或权限不足,会导致配置加载失败,可查看应用日志确认是否有相关错误。

内容的提问来源于stack exchange,提问作者Reza Shirazi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 16:30:43