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

C#使用ConfigurationManager读取App.config配置值返回null问题

导致该问题的常见原因及对应解决方法
  • 配置文件加载路径错误
    .NET 运行时不会直接读取项目根目录下的App.config文件:

    1. 可执行项目(控制台、WinForm、WPF等)编译时会将App.config重命名为[你的程序集名].exe.config输出到bin目录,运行时只会读取这个输出目录下的配置文件。右键项目中的App.config打开属性面板,将「复制到输出目录」设置为「如果较新则复制」,重新编译后去bin目录核对生成的.config文件里是否存在你写的test配置项。
    2. 类库项目生成的[类库名].dll.config不会被默认加载,类库中调用ConfigurationManager时默认读取的是当前启动项目(宿主程序)的配置文件,需要把对应appSettings配置项写到启动项目的配置文件中才能读取到。
    3. 传统ASP.NET Web项目不会识别根目录的App.config,所有appSettings配置需要写在项目根目录的Web.config文件中才会生效。
  • 缺少必要依赖

    1. .NET Framework 项目下,ConfigurationManager所在的System.Configuration程序集不是默认引用项,需要手动在项目依赖中添加System.Configuration的程序集引用,仅写using System.Configuration;命名空间引用不生效。
    2. .NET Core 3.0/.NET 5及以上版本的项目,默认不自带ConfigurationManager兼容支持,需要先通过NuGet安装System.Configuration.ConfigurationManager包后才能正常读取App.config的配置。
  • 配置文件格式或规则冲突

    1. 检查configuration节点下的子节点顺序,.NET 要求configSections节点必须是configuration的第一个子节点,如果configSections放在了appSettings节点之后,会导致整个配置文件加载失败,所有配置项读取返回null。
    2. 如果开启了配置文件发布转换(比如Debug/Release环境对应的配置转换文件),检查转换规则是否误删/覆盖了appSettings下的test节点,导致发布后的配置文件中不存在该配置项。
    3. 排查配置文件是否存在不可见的特殊字符、编码错误,确保文件为标准UTF-8编码,节点拼写、key的大小写和代码中读取的key完全匹配。
  • 运行时配置被修改
    在读取配置的代码前加断点,查看ConfigurationManager.AppSettings.AllKeys集合的内容,如果集合里根本没有test,说明配置文件没有被正确加载;如果集合里有test但读取返回null,排查代码中是否存在调用ConfigurationManager.AppSettings.Remove()等修改配置集合的逻辑,这类逻辑执行后会移除对应key导致读取结果为null。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:22:17