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

AWS上ASP.NET应用无法连接SQL Server的排查求助

解决SQL Server TCP连接Error 40的排查步骤

1. 验证SQL Server TCP端口监听状态

在Win Server实例的命令提示符中执行:

netstat -ano | findstr "1433"

确认存在LISTENING状态的条目,且对应PID为MSSQLSERVER服务的PID。若没有,需重启MSSQLSERVER服务,同时检查SQL Server配置管理器:确保TCP/IP设置中,实例私有IP对应的TCP端口设为1433、已启用设为是。

2. 测试Linux实例到SQL Server的网络连通性

在Amazon Linux实例上执行以下命令之一,验证端口可达性:

telnet <SQL_SERVER_PRIVATE_IP> 1433

或

nc -zv <SQL_SERVER_PRIVATE_IP> 1433

若连接失败,排查以下网络规则:

  • Win Server防火墙出站规则:确认未限制Linux实例IP的出站流量
  • Linux实例EC2安全组出站规则:确保允许到1433端口的出站流量(默认全允许,自定义规则需检查)
  • VPC网络ACL:子网关联的ACL需允许SQL Server子网1433端口入站,以及Linux子网临时端口范围的出站响应流量

3. 检查SQL Server Browser服务状态

若使用命名实例(部分AWS SQL AMI默认配置为命名实例),需启动SQL Server Browser服务,并确保Win Server防火墙开放1434端口、EC2安全组允许1434端口入站。

4. 修正连接字符串配置

  • 确保使用SQL Server实例的私有IP(而非localhost/127.0.0.1),跨EC2实例通信依赖私有网络
  • 补充SSL信任参数,避免自签名证书验证失败:
Server=<PRIVATE_IP>;Database=<DB_NAME>;User Id=<SQL_USER>;Password=<SQL_PWD>;TrustServerCertificate=True;

5. 查看SQL Server错误日志

在SSMS中查看SQL Server日志(管理→SQL Server日志),查找来自Linux实例IP的登录失败记录,确认是否为账号权限、密码错误等问题。必要时启用登录审计,获取更详细的失败原因。

6. 验证DNS解析(若使用主机名)

若连接字符串用主机名,在Linux实例上执行:

nslookup <SQL_SERVER_HOSTNAME>

确认解析结果为SQL Server实例的私有IP,排除DNS解析错误导致的连接失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:45:23