【发布时间】:2018-04-10 10:51:15
【问题描述】:
我们有一个 Azure SQL 服务器正在运行,我们将其用于我们的 Azure Web 应用程序。 Web App 可以毫无问题地连接。我们正在尝试通过 C# 控制台应用程序使用最新的 EF 迁移远程更新数据库。 但是我们得到以下异常。
与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定实例)
我们尝试使用 SSMS 从同一台 PC 进行连接,但没有出现任何问题。是的,在有人问我们之前,我们将 Azure 中的 IP 列入白名单,否则我们甚至无法通过 SSMS 访问。我们还尝试在连接字符串中使用和不使用“tcp:”。
这是我们在 Web 和控制台应用程序中使用的连接字符串:
Server=tcp:{servername}.database.windows.net;Database={dbname};user id = {userid};password = {password};MultipleActiveResultSets=True;
在 SSMS 中,我们只使用 {servername}.database.windows.net 并使用凭据。
提前致谢。
【问题讨论】:
-
你能发布你的连接字符串(没有敏感信息)吗?你有没有检查你的IP地址和实例名称是否与SSMS相同?
-
我更新了我的问题。是的,毫无疑问是同一个IP。
-
测试期间防火墙是否关闭?因此,您对 Web App 和 Consol App 使用相同的连接字符串。所以看起来你的系统阻止了这个控制台的连接。
-
测试时防火墙完全关闭。
-
尝试将以下内容添加到您的连接字符串中:Trusted_Connection=False;Encrypt=True; SSMS 可能会默认选中这些选项,而您的应用则没有。
标签: entity-framework azure azure-sql-database connection-string