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

部署于Linux的.NET Core应用远程连接SQL Server连接字符串异常问题

Linux环境.NET Core连接SQL Server连接串修复方案

你当前使用的连接字符串需要针对性修改,两个配置项适配问题共同导致了Linux环境下连接失败:

1. 实例名解析逻辑适配

Windows环境下Server=serverabc\\dev_xys的双反斜杠实例名标识,在Linux的SQL Server驱动中解析规则存在差异,且该写法默认依赖目标SQL Server所在服务器的1434 UDP端口开放、SQL Browser服务正常运行,才能解析实例名对应的TCP端口。报错中的Cannot connect to SQL Server Browser就是该解析流程失败导致。
另外你给出的原始配置片段中SQLDbContext前缺少双引号,注意JSON格式合法性,避免配置读取失败。
修复方案二选一:

  • 直接指定端口号(更稳定,无额外依赖):先确认dev_xys实例对应的TCP监听端口,假设为1455,将Server段修改为Server=serverabc,1455,跳过实例名解析步骤
  • 保留实例名写法:确保目标SQL Server的1434 UDP端口对Linux部署服务器开放,且SQL Browser服务已正常启动,JSON配置中的双反斜杠转义写法本身无需调整

2. 集成身份认证适配

Integrated Security = True是Windows原生的SSPI身份认证方案,Linux环境下未配置Kerberos、未加入域的情况下无法识别该配置,你确认的服务账号权限是Windows域账号的话,Linux环境默认无法直接复用。
修复方案二选一:

  • 改用SQL身份认证(最常用方案):删除Integrated Security = True配置,新增SQL账号密码配置:User Id=你的SQL账号;Password=对应的密码;
  • 保留域账号集成认证:先给Linux服务器配置Kerberos并加入对应域,确保运行.NET服务的账号能正常获取Kerberos票证,再将连接串的集成认证配置修改为Integrated Security=SSPI

参考修复后配置(SQL身份认证模式)

"ConnectionStrings" : {
  "SQLDbContext": "Server=serverabc,你的实例端口;Database=mynewDatabase;User Id=sql登录账号;Password=sql登录密码;TrustServerCertificate=True"
}

注:如果SQL Server使用自签名证书,需要添加TrustServerCertificate=True配置避免证书校验失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:45:03