我有一个产生三个独立的DLL一个三层的web应用程序:为什么app.config的值为null?
- Web.UI.dll
- Web.Application.dll
- Web.DAL.dll
两个Web.Application.dll
和Web.DAL.dll
有他们自己的app.configs。我需要访问web.config中的特定设置。我正在使用以下代码:
[CacheUtil.cs]
string cacheName = ConfigurationManager.AppSettings.Get("CacheName");
我已验证此设置是否存在。那么,为什么当我运行时,我得到NULL? CacheName是否需要存在于所有的.config文件中?
这里是web.config中的设置:
<appSettings>
<add key="CacheName" value="staging"/>
仅供参考,CacheUtil是一个单就是懒在第一次访问初始化。第一次访问发生在DAL.dll项目中。
谢谢!
嗯,好奇。在调试模式下它看起来很好,但在发布之后不会。那么,app.configs是没有意义的? –
'app.config'是为产生EXE的项目而设计的。部分构建过程是将其重命名为'ProgramName.exe.config'并复制到输出目录。 Web应用程序是不同的 - 它们不是寻找'ProgramName.exe.config',而是寻找'web.config'。在类库项目中有'app.config'文件是没有意义的,不需要将其中包含的值复制到适当的配置文件中。 –