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

.NET Core中Key-per-file配置提供器层级文件名映射失效问题求助

解决Key-per-file配置提供器的层级键映射问题

嘿,我之前也踩过这个坑!Key-per-file配置提供器处理层级配置项的时候,单下划线_并不是冒号:的正确替代符,这就是你用Logging_Backend_URL文件没生效的原因。下面给你两种可行的解决方案:

方案1:用目录结构表示层级关系

这是最直观的方式,完全对应配置项的层级:

  • 在你的配置目录下创建一个Logging子文件夹
  • 进入Logging文件夹,再创建Backend子文件夹
  • 在Backend文件夹里创建一个名为URL的文件,把你要配置的值写入这个文件

最终的目录结构应该是这样的:

你的配置根目录/
  Logging/
    Backend/
      URL

这样ASP.NET Core会自动识别这个结构,将文件内容映射到Logging:Backend:URL配置项。

方案2:用双下划线__替代冒号作为分隔符

如果你不想创建多层目录,可以用双下划线来表示配置层级的分隔:

  • 把你的文件名从Logging_Backend_URL改成Logging__Backend__URL(注意是两个下划线,不是一个)
  • Key-per-file提供器会自动将双下划线解析为配置路径中的冒号,这样就能正确映射到Logging:Backend:URL了

验证配置是否生效

你可以在代码里加一行验证,确认配置是否被正确读取:

var backendUrl = Configuration["Logging:Backend:URL"];
Console.WriteLine($"读取到的后端日志URL:{backendUrl}");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 06:12:36