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

ASP.NET 6项目用Scaffold-DbContext连接SQL Server遇SSL登录错误

问题:ASP.NET 6 MVC项目执行Scaffold-DbContext连接SQL Server时遇SSL证书错误

我在VS 2022中开发ASP.NET 6 MVC项目,执行以下Scaffold-DbContext命令连接SQL Server数据库:

Scaffold-Dbcontext "Server=DESKTOP-kd; Database=Gestion; Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Data

执行后出现错误:

Build started...
Build succeeded.
To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see http://go.microsoft.com/fwlink/?LinkId=723263.
Microsoft.Data.SqlClient.SqlException (0x80131904): 已成功与服务器建立连接,但在登录过程中发生错误。(provider: SSL Provider, error: 0 - 证书链由不受信任的机构颁发。)
Error Number:-2146893019,State:0,Class:20
已成功与服务器建立连接,但在登录过程中发生错误。(provider: SSL Provider, error: 0 - 证书链由不受信任的机构颁发。)

我已尝试在appsettings的连接字符串中添加TrustServerCertificate=true; Encrypt=false;但问题未解决,且确认服务器名称正确,另外也曾执行过另一命令:

Scaffold-Dbcontext "Server=DESKTOP-LINA; Database=GestionSQLI; Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Data 

可尝试的解决方法

  • 直接在Scaffold命令的连接字符串中添加SSL参数
    不要仅在appsettings中配置,将TrustServerCertificate=true; Encrypt=false;直接写入执行命令的连接字符串内,示例:

    Scaffold-Dbcontext "Server=DESKTOP-kd; Database=Gestion; Trusted_Connection=True; TrustServerCertificate=true; Encrypt=false;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Data
    

    因为Scaffold命令执行时可能不会直接读取appsettings中的配置,而是优先使用命令内提供的连接串。

  • 检查SQL Server的SSL配置
    打开SQL Server配置管理器,展开「SQL Server网络配置」→ 找到对应实例的协议,右键查看「属性」→ 切换到「证书」标签,确认是否配置了有效证书。若使用自签名证书,需将该证书导入本地计算机的「受信任根证书颁发机构」存储中。

  • 改用SQL Server实例名称连接
    尝试使用实例名格式,比如Server=.\SQLEXPRESS(默认实例)或Server=DESKTOP-kd\你的实例名,避免计算机名解析或实例识别异常。

  • 更新EF Core相关NuGet包
    打开NuGet包管理器,确保Microsoft.EntityFrameworkCore.SqlServer和Microsoft.EntityFrameworkCore.Tools工具包为最新版本,旧版本可能存在SSL连接兼容性问题。

  • 验证Windows身份验证权限
    确认当前登录VS的Windows账户,在目标SQL Server实例中拥有访问Gestion数据库的权限,包括读取数据库架构的权限(Scaffold操作需要读取表结构)。

  • 检查SQL Server服务状态
    打开系统服务管理器,确认SQL Server(对应目标实例)和SQL Server Browser服务处于运行状态,使用命名实例时,SQL Server Browser必须启动才能被外部访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 09:38:10