Nic*_*ahn 32 c# asp.net web-config
我没有意识到:'在一个单独的类库中有一个web.config,'正在从不同的Web应用程序中读取web.config应用程序设置.
我正在使用VS2010目标框架3.5
我不知道这里有什么问题,但是null当我试图得到时,我得到了ConfigurationManager.AppSettings["StoreId"];
private string _storeid = GetStoreId;
public static string GetStoreId
{
get
{
return ConfigurationManager.AppSettings["StoreId"];
}
}
Run Code Online (Sandbox Code Playgroud)
web.config中:
<appSettings>
<add key="StoreId" value="123" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
Ben*_*Ben 37
如果你是单位测试你需要的副本中的app.config中的内部单元测试项目
MrE*_*yes 30
您上面发布的代码是否使用单独的类库到您的主asp.net库?
如果您是,并且已使用上面发布的设置将app.config添加到此库,则ConfigurationManager不会读取正确的文件,因为这将查看您的asp.net库的web.config文件.
Jer*_*son 15
我知道这是旧的,但我一直回到这里:(
通常的原因是由于背景.
假设你有一个带有VSTO加载项项目和类库项目的解决方案,如果App.Config在类库中它不会工作,因为正在运行的应用程序的上下文是VSTO加载项项目.要从配置中读取值,您需要将配置文件移动到具有上下文的项目.
如果你不熟悉VSTO假装我写了ASP.Net项目而app.config写了web.config.
一个漂亮的解决方案是在其他项目中添加配置文件快捷方式,因此您只需更新一个文件:

它类似于按照答案#2共享程序集文件:https://stackoverflow.com/a/15319582/495455
和:
<appSettings>
<add key="StoreId" value="123" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
它位于web.configASP.NET应用程序的文件中,而不是app.config在Visual Studio中添加到类库项目的某个文件中,对吧?null如果是这种情况,你不可能得到.如果您已将此添加到app.configVisual Studio中的类库项目中,则获取null是完全正常的行为.
免责声明 ;) 这篇文章不是为了回答OP,因为为时已晚,但绝对会帮助那些结束本页面的读者.
问题我面临着:ConfigurationManager.AppSettings["uName"]回来null在我的C#的Web API项目.
我检查的基本事项:
1)在代码中ConfigurationManager.AppSettings["uName"],我正在使用uName我在web.config文件中的精确密钥' '
即
<appSettings>
<add key="uName" value="myValue" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
经过我还没有输入错误的userName,而不是uName等
2)因为它是一个Web API项目,所以它将有一个文件web.config代替app.config,而且在项目的根文件夹中也是如此.[参考图片].
方案:
对我有用的解决方案,
改变 ConfigurationManager.AppSettings["uName"]以WebConfigurationManager.AppSettings["uName"]
和
确保我有
<appSettings>
<add key="uName" value="myValue" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
在正确的 文件即.
右侧文件不是 View文件夹中的web.config
无论是调试还是发布web.config
| 归档时间: |
|
| 查看次数: |
60919 次 |
| 最近记录: |