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

ASP.Net Core MVC部署IIS后数据库访问报错:不支持'trust server certificate'

解决ASP.NET Core MVC部署到IIS后数据库连接报错问题

核心问题定位

报错提示「Keyword not supported: 'trust server certificate'」,本质是数据库连接字符串的关键字格式错误,或者当前项目使用的数据库驱动不识别该关键字的写法。

具体解决步骤

  • 修正连接字符串关键字格式:
    连接字符串参数名不能包含空格,把「Trust Server Certificate」改为无空格的TrustServerCertificate,配合Encrypt参数使用,正确写法示例:

    Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;Encrypt=True;TrustServerCertificate=True;
    
    • 若用旧版System.Data.SqlClient驱动:TrustServerCertificate需和Encrypt=True搭配使用;
    • 若用新版Microsoft.Data.SqlClient驱动:该参数在Encrypt=True时生效,2.0及以上版本正式支持此关键字。
  • 确认数据库驱动版本:
    打开项目的csproj文件检查引用包:

    • 若引用Microsoft.Data.SqlClient,确保版本在2.0及以上;
    • 若引用System.Data.SqlClient,建议升级到4.5及以上版本,或直接替换为Microsoft.Data.SqlClient(微软官方推荐的新版驱动)。
  • 同步部署环境的连接字符串配置:
    不要只修改本地配置,部署到IIS后需确认:

    • 服务器站点根目录下的appsettings.json或web.config中,连接字符串已同步修正;
    • 若使用环境变量存储连接字符串,需检查服务器端的环境变量配置是否正确。
  • 验证连接字符串有效性:
    可以用代码生成标准格式的连接字符串,避免手动输入出错:

    var builder = new SqlConnectionStringBuilder();
    builder.DataSource = "myServerAddress";
    builder.InitialCatalog = "myDataBase";
    builder.UserID = "myUsername";
    builder.Password = "myPassword";
    builder.Encrypt = true;
    builder.TrustServerCertificate = true;
    string validConnStr = builder.ToString();
    

    将生成的字符串直接复制到项目配置中即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:02:09