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

Azure App Configuration双下划线与冒号嵌套映射及Linux兼容性咨询

.NET配置嵌套分隔符问题解答

一、为什么推荐用双下划线(__)表示嵌套

  • 跨平台环境变量兼容:Windows和Linux的环境变量都不允许名称里带冒号(:),但双下划线是合法字符。.NET配置系统会自动把环境变量中的双下划线转换成配置路径的冒号,用双下划线命名能让配置项同时适配环境变量、Azure App Configuration等多种配置源,不用在不同平台改命名规则。
  • 配置源规则统一:除了环境变量,命令行参数、部分配置文件格式也支持双下划线作为嵌套分隔符,统一用它能减少不同配置源之间的适配成本,避免混乱。

二、冒号命名的配置项在Linux上能否正常工作

可以正常工作,但要分场景看待:

  • 直接从Azure App Configuration拉取:不管是Windows还是Linux机器,只要应用是直接读取Azure App Configuration里的配置,冒号作为嵌套分隔符完全被.NET配置系统支持,不会有任何问题。
  • 同步到环境变量的场景:如果后续要把这个配置项同步到Linux的环境变量中,就会失效——因为Linux环境变量名不允许包含冒号,这时候双下划线的兼容性优势就体现出来了。

关于你遇到的双下划线绑定失败问题

大概率是配置加载环节的问题,你可以从这几个方向排查:

  • 检查是否有其他配置源(比如appsettings.json、本地环境变量)的同名配置覆盖了Azure App Configuration里的项;
  • 确认注册Azure App Configuration服务时,有没有启用特殊配置(比如密钥 vault 集成)影响了键名的解析逻辑;
  • 启动时打印所有已加载的配置键值对,确认Section1__SubSection1__MySetting是否被正确读取到配置系统中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:19:58