ConfigurationManager.AppSettings变为null?
我没有意识到:’在一个单独的类库中有一个web.config,’正在从不同的Web应用程序中读取web.config应用程序设置。
我正在使用VS2010目标框架3.5
我不知道这里有什么问题但是当我尝试获取ConfigurationManager.AppSettings["StoreId"];
时我得到null
ConfigurationManager.AppSettings["StoreId"];
private string _storeid = GetStoreId; public static string GetStoreId { get { return ConfigurationManager.AppSettings["StoreId"]; } }
web.config中:
您上面发布的代码是否使用单独的类库到您的主asp.net库?
如果您是,并且已使用上面发布的设置向此库添加了app.config,则ConfigurationManager不会读取正确的文件,因为这将查看您的asp.net库的web.config文件。
如果你是UNIT TESTING,你需要在UNIT TEST PROJECT中 复制 APP.CONFIG
我知道这是旧的,但我一直回到这里:(
通常的原因是由于背景。
假设你有一个带有VSTO加载项项目和类库项目的解决方案,如果App.Config在类库中它不会工作,因为正在运行的应用程序的上下文是VSTO加载项项目。 要从配置中读取值,您需要将配置文件移动到具有上下文的项目。
如果您不熟悉VSTO假装我编写ASP.Net项目而app.config编写web.config。
解
一个漂亮的解决方案是在其他项目中添加配置文件快捷方式,因此您只需更新一个文件:
它与答案#2的共享程序集文件类似: https : //stackoverflow.com/a/15319582/495455
和:
它位于ASP.NET应用程序的web.config
文件中,而不是您在Visual Studio中添加到类库项目的某个app.config
文件中,对吧? 如果是这种情况,你不可能得到null
。 如果您已将此添加到Visual Studio中的类库项目的app.config
,则获取null是完全正常的行为。
免责声明 ;) 这篇文章不是为了回答OP,因为为时已晚,但绝对有助于读者结束本页面。
我遇到的问题 : ConfigurationManager.AppSettings["uName"]
在我的C#web api项目中返回null
。
我检查的基本事项 :
1)在代码ConfigurationManager.AppSettings["uName"]
,我使用了与web.config
文件中的精确密钥’ uName
‘,
即
检查我没有误输入 userName
而不是uName
等。
2)由于它是一个Web API项目,它将有一个文件作为web.config
而不是app.config
,并且在项目的根文件夹中也是如此。 [参考图片]。
方案 :
对我有用的解决方案,
将 ConfigurationManager.AppSettings["uName"]
更改为WebConfigurationManager.AppSettings["uName"]
和
确保我有
在正确的文件即。
右侧文件不是 View文件夹中的web.config
无论是调试还是发布web.config
我刚刚得到答案DLL是从另一个项目中调用的,而不是在app.config中有create.so条目的项目中应该转移到调用项目配置文件。
例如,我在我的解决方案中有2个项目,一个类库和其他控制台application.i在控制台应用程序中添加了类库引用。如果我在类库项目中添加app.config文件,它通过null exception.it工作,当我添加app控制台应用程序中的.config。希望它有效
应用程序设置将加载到ConfigurationManager.AppSettings中,但用户设置(在项目属性的“属性”设置中)不会。
当我测试类库(.dll)时,这发生在我身上。 他们都在同一个项目中,但是该库的App.config具有我需要的设置。 我写的测试应用程序需要设置,因为它正在运行库。
我从文件资源管理器中复制了一个项目并重命名了项目时遇到了这个问题。 这复制了Debug文件夹,因为我没有将它设置为’Copy if newer’,它没有覆盖旧的App.config文件。
只需删除Debug文件夹并重建即可。 希望能帮助别人。
如果这是您的整个配置文件,那么您将缺少
元素。