2010-11-18 95 views
1

我有一個解決方案,它包含一個Web項目和一個類庫項目。類庫項目包含企業庫5.0和app.config。當我嘗試執行Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Write,我得到以下異常:企業庫5.0不檢測app.config

依賴解析失敗, 類型= 「Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter 「, name =」(none)「。同時發生異常 :解決。例外情況是: InvalidOperationException - 無法構造類型 LogWriter。您必須將該容器配置爲提供 此值。 -----------------------------------------------在異常的時候, 容器是:解決 Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter,(無)

如果我所有的類文件移動到web項目,並有在企業庫配置Web.config,一切工作正常。我猜問題是企業庫沒有檢測到包含所有配置的app.config。

請在這方面幫助我。

在此先感謝。

回答

3

.NET dll沒有配置文件。 AppDomains的確如此。你不能把任何配置放在一個dll的「app.config」文件中,並期望它自動被拾取。這是.NET配置文件的工作方式;這並不是說「entlib不會自動檢測」它,它正在做.NET框架定義配置文件的行爲。

答案是將代碼留在庫中,但將配置放在Web應用程序的web.config文件中。那麼一切都會正常工作。

還有更高級的東西可以像手動加載配置文件一樣進行,但是它們相當先進,尤其是在日誌記錄的情況下,稍後會導致管理員頭疼。