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

API项目连接SQL Server失败,Blazor项目可正常连接

解决API项目连接SQL Server报"Internal connection fatal error"的问题

可能的原因及排查修复步骤

  • 核对.NET版本一致性:Blazor Server和API项目的目标.NET框架版本可能不匹配,System.Data.SqlClient在不同.NET版本下的兼容性有差异。右键两个项目→属性,确认两者的目标框架完全相同(比如都是.NET 6或.NET 7)。
  • 确认连接字符串的正确性:API项目可能从错误的配置文件读取连接字符串,或者读取逻辑有问题。可以在API启动时临时打印连接字符串(仅调试用),和Blazor项目的对比,确保完全一致:
    var connString = Configuration.GetConnectionString("YourConnStringKey");
    Console.WriteLine(connString);
    
  • 统一SQL驱动版本:System.Data.SqlClient是旧版驱动,两个项目的NuGet包版本可能不一样。打开NuGet包管理器,把API项目的System.Data.SqlClient版本改成和Blazor一致,或者直接换成微软推荐的Microsoft.Data.SqlClient(官方已停止对旧驱动的新增功能开发)。
  • 测试SSL/TLS配置:SQL Server可能强制要求SSL连接,API的运行环境SSL设置和Blazor不同。可以在连接字符串末尾加Encrypt=false临时测试(仅调试,生产环境谨慎使用),看是否能正常连接:
    Server=你的服务器地址;Database=你的数据库名;User Id=账号;Password=密码;Encrypt=false;
    
  • 检查运行权限差异:Blazor Server和API的运行权限可能不同,比如Blazor用当前用户权限,API用应用池身份或系统账户,导致无法访问SQL Server。可以临时给API的运行账户添加SQL Server的登录权限测试。
  • 重置连接池:API项目可能存在连接池损坏的情况,重启API项目和SQL Server服务,清空连接池后重试。

迁移到新版驱动的快速步骤

如果旧驱动问题无法解决,建议切换到Microsoft.Data.SqlClient:

  1. 在API项目中卸载System.Data.SqlClient NuGet包。
  2. 安装Microsoft.Data.SqlClient包。
  3. 把代码里的using System.Data.SqlClient;替换成using Microsoft.Data.SqlClient;,其他逻辑无需改动。

内容的提问来源于stack exchange,提问作者Mehdi Sh.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:19:57