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

ASP.NET Core 6连接SQL Server时报错的解决方法是什么

ASP.NET Core 6 连接SQL Server报错解决方案

问题说明

基于ASP.NET Core 6开发项目时,连接SQL Server过程中触发连接错误,报错信息参考截图:
ASP.NET Core 6连接SQL Server报错截图
该报错的核心触发原因是:ASP.NET Core 6及更高版本默认启用SQL Server连接加密,未配置可信SSL证书的SQL Server实例会因证书链不受信任阻断连接。

可落地解决方案

开发环境快速修复

直接在数据库连接字符串中添加TrustServerCertificate=True配置,跳过服务端证书信任校验即可,无需额外改动服务端配置。

  1. 配置文件写法示例(appsettings.json):
"ConnectionStrings": {
  "DefaultDb": "Server=你的SQL Server实例名/地址;Database=目标数据库名;User Id=数据库登录账号;Password=对应密码;TrustServerCertificate=True;"
}
  1. 代码注入DbContext写法示例:
builder.Services.AddDbContext<AppDbContext>(opt =>
    opt.UseSqlServer(builder.Configuration.GetConnectionString("DefaultDb"))
);

如果本地开发不需要加密传输,也可以在连接字符串中追加Encrypt=False关闭连接加密,进一步减少环境兼容问题。

生产环境规范配置

生产环境不建议跳过证书校验,避免传输链路被窃听篡改,正确配置方式:

  • 为SQL Server实例配置由公共可信CA或企业内部根CA颁发的有效SSL证书
  • 确保部署应用的服务器已将对应CA根证书加入受信任根证书存储
  • 连接字符串保留Encrypt=True配置,不需要额外添加TrustServerCertificate=True

额外排查项

如果添加上述配置后仍无法连接,依次排查以下问题:

  • 打开SQL Server配置管理器,确认SQL Server对应实例的服务处于运行状态,同时启用TCP/IP协议
  • 核对数据库登录账号密码是否正确,确认该账号已被授予目标数据库的对应读写权限
  • 检查数据库服务器防火墙规则,确认已开放SQL Server使用的端口(默认1433,自定义端口需在连接字符串的Server字段后追加,端口号)
  • 如果使用Windows集成身份验证,在连接字符串中添加Integrated Security=True,移除明文配置的账号密码字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:21:19