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

使用EF Core连SQL Server遇Internal Connection Fatal Error但直接用Microsoft.Data.SqlClient正常

解决EF Core连接SQL Server时的"Internal connection fatal error"问题

可能的原因及修复方案

1. 对齐EF Core与SQL Server驱动版本兼容性

你当前使用的EF Core 6.0.7,若搭配的Microsoft.Data.SqlClient版本不兼容,会触发连接错误。EF Core 6.x推荐使用适配的稳定版本:

  • 打开项目的NuGet包管理器,卸载现有Microsoft.EntityFrameworkCore.SqlServer,重新安装指定版本:
    Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 6.0.25
    
    该版本会自动匹配兼容的Microsoft.Data.SqlClient版本,规避驱动不兼容问题。

2. 调整连接字符串的加密配置

尽管已添加TrustServerCertificate=True,可尝试显式指定加密模式:
修改连接字符串为:

Server=localhost\SQLEXPRESS;Database=webTools;TrustServerCertificate=True;MultipleActiveResultSets=true;Integrated Security=true;Encrypt=Optional

Encrypt=Optional会强制驱动不要求加密连接,避免本地SQL Server Express的默认加密配置冲突。

3. 启用SQL Server的TCP/IP协议

本地SQL Server Express默认可能禁用TCP/IP协议,导致EF Core无法建立稳定连接:

  1. 打开SQL Server配置管理器
  2. 展开SQL Server网络配置 -> SQLEXPRESS的协议
  3. 右键TCP/IP选择启用
  4. 重启SQL Server (SQLEXPRESS)服务

4. 替换连接字符串中的服务器标识

尝试用(localdb)\MSSQLLocalDB或本地IP替代localhost\SQLEXPRESS,比如:

Server=(localdb)\MSSQLLocalDB;Database=webTools;TrustServerCertificate=True;MultipleActiveResultSets=true;Integrated Security=true

或者使用本地IP:

Server=127.0.0.1\SQLEXPRESS;Database=webTools;TrustServerCertificate=True;MultipleActiveResultSets=true;Integrated Security=true

部分场景下localhost的解析逻辑会在EF Core连接流程中引发异常。

5. 验证项目目标框架版本

确保ASP.NET Core项目的目标框架与EF Core版本匹配,EF Core 6.x对应.NET 6:

  • 右键项目 -> 属性 -> 应用程序,确认目标框架为.NET 6.0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:48:18