首页 > 解决方案 > 来自 Azure Linux 应用服务 Web 应用的 SQL 连接

问题描述

我有一个通过托管公司托管在 Plesk 中的 asp net core web 应用程序和 SQL Server 数据库。

我已将 Web 应用的副本部署到 Azure Linux 应用服务。它使用 Plesk 托管的 SQL Server 数据库。当我使用 Azure App Service 访问 Plesk 托管数据库时出现连接错误。

SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:TCP 提供者,错误:40 - 无法打开与 SQL Server 的连接)

如果我使用 Plesk 托管的 Web 应用程序,它会按预期正确连接到 sql server。如果我随后立即使用 Azure Linux Web 应用程序,它会设法获得 SQL 连接!在所有情况下,连接字符串都是相同的。它就像它需要醒来!

怎么会是这样。我不知道为什么会发生这种情况。有什么想法吗?

标签: sql-serverlinuxazureasp.net-coreconnection

解决方案


正确地,您需要将Azure App Service 中的出站 IP 地址添加到您的 SQL Server 数据库所在的 SQL Server 的防火墙中。

编辑

您可以参考this检查您身边的以下方面。

  1. 确保 SQL Server 服务正在运行
  2. 如果是命名实例,请确保 SQL Server 浏览器服务正在运行
  3. 确保 SQL Server 配置为允许远程连接
  4. 检查 SQL Server 错误日志中的消息,确认 SQL 正在侦听预期的网络接口和端口
  5. 使用来自客户端计算机的 PING 测试服务器连接
  6. 使用 TELNET 或 PowerShell 测试从客户端计算机到服务器和端口(从步骤 4 开始)的端口连接。例如一个。远程网络 1433 b。电源:1433 | % { echo ((new-object Net.Sockets.TcpClient).Connect("YourServerName",$ )) "服务器监听 TCP 端口 $ " }
  7. 如果第 5 步或第 6 步连接测试失败,请检查防火墙设置

了解更多信息:


推荐阅读