我有一個產生三個獨立的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'文件是沒有意義的,不需要將其中包含的值複製到適當的配置文件中。 –