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

.NET Web API无法连接SQL Server(Windows身份验证)求助

解决Windows身份验证下.NET Web API连接SQL Server证书链不受信任问题
  • 确认连接字符串是否被正确加载
    在Program.cs或API控制器中添加代码输出实际读取的连接字符串,验证配置是否生效:

    // 在Program.cs中
    var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
    Console.WriteLine("当前使用的连接字符串:" + connectionString);
    

    排查是否存在环境变量、appsettings.Development.json等其他配置文件覆盖默认配置的情况。

  • 检查SQL Server的强制加密设置
    打开SQL Server配置管理器操作:

    1. 展开「SQL Server网络配置」,选择目标实例(如SQLEXPRESS)的协议
    2. 右键点击「TCP/IP」选择「属性」,切换到「证书」标签
    3. 查看「强制加密」选项,若设置为「是」,即使连接字符串指定Encrypt=False也会强制启用加密,此时需将其改为「否」,或确保服务器证书被客户端信任。
  • 验证Windows身份验证权限
    虽然报错指向证书,但权限问题可能引发异常混淆:

    • 用运行Web API的Windows账户(本地调试为当前登录账户,IIS部署为应用池账户)通过SSMS登录SQL Server实例,确认能正常访问cv_database数据库。
    • 若账户无权限,在SSMS中为该账户添加对应实例的登录权限及数据库的用户权限。
  • 更新Microsoft.Data.SqlClient包版本
    旧版本的SqlClient可能存在连接字符串参数处理bug(如Encrypt=False优先级异常),在NuGet包管理器中更新Microsoft.Data.SqlClient至最新稳定版本。

  • 手动信任SQL Server自签名证书
    若必须启用加密,可将SQL Server的自签名证书导入本地信任存储:

    1. 在SQL Server配置管理器的TCP/IP属性「证书」标签中,复制证书指纹
    2. 打开MMC控制台,添加「证书」管理单元并选择「本地计算机」
    3. 展开「受信任的根证书颁发机构」->「证书」,右键选择「所有任务」->「导入」
    4. 按照向导找到SQL Server使用的证书(通过指纹在证书存储中定位)并完成导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:09:55