我有两个运行 .NET Core 3.1 应用程序的应用程序服务,这些应用程序连接到 Azure SQL 数据库。一个应用程序是一个简单的测试应用程序,用于使用相同的 DI 管道测试与数据库的连接性,另一个是完整的应用程序。测试应用程序连接到数据库并产生所需的输出,而生产应用程序连接失败并显示以下异常消息:
建立与 SQL Server 的连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供程序:SNI_PN11,错误:26 - 错误定位服务器/指定的实例)
我已经修改了数据库规则以包含我的开发工作站 IP 地址,并且两个应用程序都按预期连接到数据库。在数据库防火墙上,我还做了以下:
virtual ip address
的 IP 地址。这两个应用服务共享一个虚拟 IP 地址。Allow Azure services and resources to access this server
设置。应用程序的 appsettings.json
文件是相同的。
当我将测试应用程序部署到生产服务器时,它仍然有效。生产应用程序中的某些内容导致连接失败。为什么生产应用无法连接,还有什么可以解决问题?
答案 0 :(得分:0)
想知道我的连接字符串是否有问题,我添加了一些日志记录以将其写入日志文件。我意识到连接字符串是错误的 - 它试图连接到不同的数据库。 AppSettings.Production.json 覆盖了连接字符串,我的测试应用程序有一个空的 AppSettings.Production.json 这就是它起作用的原因。