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

ASP.NET Web API部署后调用返回500错误,SQL连接故障求助

排查ASP.NET Web API部署到IIS后无法连接SQL Server(错误码26)的问题

针对你遇到的错误码26(无法找到或访问SQL Server实例)且SQL日志无登录记录的情况,说明连接请求根本没到达SQL Server,以下是针对性排查步骤:

1. 检查SQL Server Browser服务状态

SQLEXPRESS默认使用动态端口,依赖SQL Server Browser服务解析实例名:

  • 打开服务器的services.msc,找到SQL Server Browser服务;
  • 确保服务处于正在运行状态,启动类型设为自动,避免重启后失效。

2. 在部署API的服务器本地测试连接

不要用开发机测试,直接在目标服务器上验证:

  • 打开SSMS,分别用VMName\SQLEXPRESS、localhost\SQLEXPRESS、服务器IP\SQLEXPRESS尝试连接;
  • 用telnet 服务器IP 端口号测试端口连通性(默认1433,动态端口需从SQL配置管理器获取),不通则说明端口未开放或SQL未监听。

3. 配置SQL Server TCP/IP监听

打开SQL Server配置管理器:

  • 进入SQL Server网络配置 > SQLEXPRESS的协议,确保TCP/IP协议已启用;
  • 双击TCP/IP,切换到IP地址标签页,找到IPAll:
    • 若用固定端口,清空TCP动态端口,在TCP端口填写1433;
    • 若用动态端口,记录TCP动态端口的数值;
  • 重启SQL Server (SQLEXPRESS) 服务使配置生效。

4. 配置防火墙规则

确保服务器防火墙(或云安全组)允许SQL相关端口的入站请求:

  • 固定端口(如1433):添加入站规则允许TCP 1433;
  • 动态端口:允许UDP 1434(SQL Server Browser端口)+ 动态TCP端口;
  • 若API和SQL在同一服务器,需确认本地防火墙未拦截回环连接。

5. 检查IIS应用程序池身份权限

IIS应用池的身份决定了API连接SQL的权限:

  • 若用ApplicationPoolIdentity:需在SQL Server中创建对应本地账户的登录名,或允许本地系统账户访问;
  • 若用自定义账户:确保该账户在本地能正常连接SQL Server,且SQL中存在对应登录权限;
  • 使用Integrated Security=True时,需保证应用池身份有SQL登录权限。

6. 确认部署后的连接字符串

检查服务器上的appsettings.json或web.config:

  • IP+端口格式:Server=192.168.x.x,1433;Database=YourDB;User Id=xxx;Password=xxx;(注意端口用逗号分隔);
  • 实例名格式:Server=VMName\SQLEXPRESS;Database=YourDB;Integrated Security=True;(需SQL Browser服务正常);
  • 避免使用localhost,换成服务器IP或机器名,防止IIS上下文解析异常。

7. 验证SQL Server实例状态

  • 在SQL Server配置管理器中确认SQL Server (SQLEXPRESS) 服务正在运行;
  • 查看SQL Server错误日志,确认实例启动无异常,监听端口与配置一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:58:33