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

Azure SQL Server数据库连接报错:error:26 - 无法定位服务器/实例

解决Azure部署ASP.NET Razor Pages后的SQL Server连接错误

核心问题分析

你当前的配置是让Azure上的Web应用连接本地SQL Server实例,这在默认场景下完全不可行——Azure云服务无法直接访问你本地内网中的数据库,除非额外配置复杂的VPN/内网穿透(不推荐新手尝试)。以下是两种可行的解决方向:


方案1:使用Azure SQL Database(推荐生产/正式测试)

这是云部署的标准做法,步骤如下:

  1. 在Azure门户创建Azure SQL Database实例,完成后进入数据库概览页,点击「显示数据库连接字符串」,复制ADO.NET格式的连接字符串。
  2. 打开Azure Web App的「配置」→「应用程序设置」,添加新的连接字符串:
    • 名称填你项目中DbContext对应的连接字符串名(比如EmployeeDBContext,前缀保留ConnectionStrings:)
    • 值填刚才复制的Azure SQL连接字符串,替换其中的{your_username}和{your_password}为Azure SQL的管理员账号密码
  3. 本地开发时,appsettings.Development.json可以继续指向本地SQL Server;部署到Azure后,Web App会自动优先读取应用程序设置中的连接字符串,无需修改代码。

方案2:临时公网暴露本地数据库(仅限个人测试,不适合生产)

如果只是临时调试,不想用Azure SQL,可按以下步骤操作(注意公网暴露数据库的安全风险):

  1. 确认本地SQL Server启用SQL Server身份验证(不能仅用Windows验证),创建一个具备数据库读写权限的SQL账号。
  2. 在路由器后台设置端口转发,将公网1433端口映射到本地SQL Server所在机器的内网IP(比如192.168.1.100)的1433端口。
  3. 修改生产环境连接字符串为:
    Server=你的公网IP,1433;Database=你的数据库名;User Id=SQL账号;Password=密码;TrustServerCertificate=True;
    
  4. 在Azure门户的SQL Server防火墙规则中,添加你的公网IP(注意动态公网IP可能会变化,需定期更新)。

关于web.config的说明

ASP.NET Core项目默认无需手动创建web.config,部署到Azure后平台会自动生成。连接字符串的配置优先级:Azure Web App应用程序设置 > appsettings.Production.json > appsettings.json,优先用前两者即可。

额外排查步骤

  • 确认Azure Web App的应用程序设置中ASPNETCORE_ENVIRONMENT值为Production,确保加载生产环境配置。
  • 用Azure Web App的「控制台」功能,执行echo %ConnectionStrings:你的连接字符串名%,验证连接字符串是否正确加载。
  • 若用方案1,先通过SSMS连接Azure SQL Database,确认账号、密码和防火墙规则有效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 08:12:45