2

我们在当前项目中设置了 log4net,以使用 AdoNetAppender 将日志条目写入 SQL Server 数据库。这一切都正常工作,但出于某种原因,为了让它工作,我们必须在 System.Data.dll 上将 Copy Local 设置为 true - 如果 bin 目录中不存在此 DLL,则 log4net 不会输出到 SQL Server并会抛出有关丢失 DLL 的错误。

这是 log4net 中的错误吗?我假设因为 System.Data.dll 是一个 .Net 框架组件,log4net 能够在 GAC 中找到它。

作为参考,我们使用 log4net 1.2.10.0 和 .Net 4.5

编辑- 如果其他人遇到此问题,为了更好的可读性,我使用的原始 XML 配置将 connectionType 定义为:

<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" />
4

1 回答 1

9

你能试试这个吗?我不确定 System.Data 的 .NET 4.5 版本是什么,但无论如何这应该可以工作:

<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
于 2012-12-13T21:41:54.863 回答