2012-12-11 51 views
2

我們在當前項目中設置了log4net,使用AdoNetAppender將日誌條目寫入SQL Server數據庫。這一切工作正常,但出於某種原因爲了得到它的工作,我們必須在System.Data.dll上將Copy Local設置爲true - 如果此DLL不存在於bin目錄中,則log4net將不會輸出到SQL Server並會拋出有關缺少DLL的錯誤。使用AdoNetAppender時Log4net依賴於System.Data.dll

這是一個在log4net中的錯誤?我假設,因爲System.Data.dll是一個.net框架組件,log4net可以在GAC中找到它。

作爲參考,我們正在使用log4net的1.2.10.0和.NET 4.5

編輯 - 爲了更好的可讀性,如果其他人遇到這個問題,我用定義connectionType爲原始的XML配置:

<connectionType value="System.Data.SqlClient.SqlConnection, System.Data" /> 

將其更改爲以下固定的問題。

<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
+0

你在你的配置文件中有什麼價值connectionType和做System.Type.GetType(connectionType)解決它? (同時發佈完整的異常/堆棧跟蹤可能會有幫助) – sgmoore

+0

connectionType定義如下: 我會看到關於獲取完整stacktrace ... –

回答

9

你能試試嗎?我不知道是什麼版本的System.Data的是.NET 4.5,但不管怎麼說這應該工作:

<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
+0

魔法,修復它!謝謝 :) –

相關問題