无法从 Azure 应用程序服务连接到 SQL 数据库

时间:2021-05-01 11:32:35

标签: asp.net azure asp.net-core azure-web-app-service

我有两个运行 .NET Core 3.1 应用程序的应用程序服务,这些应用程序连接到 Azure SQL 数据库。一个应用程序是一个简单的测试应用程序,用于使用相同的 DI 管道测试与数据库的连接性,另一个是完整的应用程序。测试应用程序连接到数据库并产生所需的输出,而生产应用程序连接失败并显示以下异常消息:

建立与 SQL Server 的连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供程序:SNI_PN11,错误:26 - 错误定位服务器/指定的实例)

我已经修改了数据库规则以包含我的开发工作站 IP 地址,并且两个应用程序都按预期连接到数据库。在数据库防火墙上,我还做了以下:

  1. 将测试和生产应用的 IP 地址添加到数据库防火墙。它是在应用服务的属性部分中指定为 virtual ip address 的 IP 地址。这两个应用服务共享一个虚拟 IP 地址。
  2. 在控制台中启用 Allow Azure services and resources to access this server 设置。

应用程序的 appsettings.json 文件是相同的。

当我将测试应用程序部署到生产服务器时,它仍然有效。生产应用程序中的某些内容导致连接失败。为什么生产应用无法连接,还有什么可以解决问题?

1 个答案:

答案 0 :(得分:0)

想知道我的连接字符串是否有问题,我添加了一些日志记录以将其写入日志文件。我意识到连接字符串是错误的 - 它试图连接到不同的数据库。 AppSettings.Production.json 覆盖了连接字符串,我的测试应用程序有一个空的 AppSettings.Production.json 这就是它起作用的原因。