2010-02-27 78 views
2

如果程序集(.dll)無法找到web.config文件,我該如何正確設計故障切換邏輯?程序集,Web.config和App.Config - 構建故障切換邏輯

背景:我已經將我們的網站代碼很好地模塊化爲兩個不同的.dll。爲簡單起見,我們姑且稱之爲:

  • website.dll
  • commonengine.dll於commonengine庫所有數據層的東西

網站代碼和的.aspx/.ascx文件調用。對於連接字符串,commonengine反過來看起來不是app.config,而是網站的web.config文件(這是我自己的偏好 - 我寧願讓我們的生產常量在一個地方)。網站代碼偶爾(很少)需要訪問該web.config文件中的東西。迄今爲止所有的好(儘管不完全是純粹的)。

這是麻煩。我寫了第三個模塊。這是一個Windows服務(具體來說,它是一個POP3檢查器/處理器 - 處理郵箱請求並將commonengine.dll用於某些數據層的東西)。

問題是commonengine.dll上的Windows服務調用,commonengine.dll無法在任何地方找到web.config,因爲畢竟它是Windows服務(.exe)並且不在網站目錄中。

當無法找到web.config文件時,這裏使用app.config的正確測試/邏輯是什麼?任何ASP.NET配置大師可以給我一些指導嗎?非常感謝,如果是的話

回答

1

我從不明確讀取Web.config,我使用System.Configuration類讀取它(例如System.Configuration.ConfigurationStrings [「conn name」])。它會自動轉到ASP.NET應用程序中的Web.config和EXE中的app.config。

當然,您仍然必須考慮配置部分可能會丟失的事實。