You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft.Data.SqlClient时log4Net无法加载System.Data.SqlClient.SqlConnection怎么办?

解决ASP.NET Core 10.0中log4net SQL Appender加载连接类型失败的问题

问题原因

在.NET Core环境中,System.Data.SqlClient已被弃用并迁移到Microsoft.Data.SqlClient NuGet包,而你的log4net配置仍在引用旧的连接类型,导致程序无法找到对应的程序集。.NET Framework 4.8中System.Data.SqlClient是框架内置组件,因此不会出现此问题。

解决方案

1. 修改log4net配置文件中的连接类型

找到log4net配置里的<AdoNetAppender>节点下的<connectionType>,将旧的类型声明替换为Microsoft.Data.SqlClient的类型:

原错误配置:

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

修改后正确配置:

<connectionType value="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient, Version=7.0.1.0, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5" />

注:版本号可根据你安装的Microsoft.Data.SqlClient版本调整,也可简化为不指定版本的写法:
<connectionType value="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient" />

2. 验证SQL命令配置兼容性

确保<commandText>中的SQL语句使用@参数名的格式(和旧用法一致,通常无需修改),示例:

<commandText value="INSERT INTO Log (Date, Level, Message) VALUES (@Date, @Level, @Message)" />

3. 清理不必要的绑定重定向配置

如果项目中app.config或web.config存在针对System.Data.SqlClient的<bindingRedirect>节点,请直接删除,.NET Core不需要此类配置。

额外检查

  • 确认项目已正确安装Microsoft.Data.SqlClient 7.0.1包,可通过NuGet包管理器验证。
  • 重启应用后测试日志写入是否正常。

内容的提问来源于stack exchange,提问作者Jim R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.02 05:54:51