在MVC中读取appSettings时始终获取Null值的问题求助
解决MVC项目读取appSettings返回Null的问题
我来帮你排查下这个问题,之前也遇到过类似的情况,大概率是这几个地方出了问题:
检查web.config的结构是否正确
确保appSettings节点是直接嵌套在<configuration>根节点下,而不是被放在其他节点(比如<system.web>)里面。正确的结构应该是这样:另外,如果你的读取代码是放在类库项目里的,一定要把配置项写到Web项目的web.config里,MVC运行时只会加载Web项目的配置文件,类库的app.config不会生效。
确认程序集引用和命名空间
先检查你的项目有没有引用System.Configuration程序集:右键项目 → 管理NuGet程序包,搜索System.Configuration并安装(如果没装的话)。
代码里最好加上using System.Configuration;,虽然你用了完全限定名,但有时候命名空间缺失也会导致读取异常。排查配置项本身的问题
先试试读取默认的webpages:Enabled项,看看能不能拿到值:string testValue = System.Configuration.ConfigurationManager.AppSettings["webpages:Enabled"];- 如果这个也返回Null,说明配置文件根本没被正确加载,那就要检查web.config是否在正确的位置,或者项目编译时有没有复制配置文件到输出目录。
- 如果能拿到
webpages:Enabled的值,那大概率是K1的拼写问题——配置项的key是区分大小写的,仔细检查你写的"K1"和web.config里的key="K1"是不是完全一致(有没有大小写错误或者多余空格)。
清理重建项目
有时候项目的编译缓存会导致配置没更新,右键解决方案 → 清理解决方案,然后重新生成整个项目,再运行试试,很多时候这个小操作就能解决问题。检查调试/发布的配置文件
如果是调试模式,确认Web项目Properties里的调试设置有没有指定正确的web.config;如果是发布到服务器,检查服务器上的web.config是不是和本地的一致,有没有被其他配置文件覆盖或者修改。
内容的提问来源于stack exchange,提问作者Debendra Dash
相关产品推荐
相关产品推荐

