Azure错误:在建立到SQL Server的连接时发生了与网络或实例特定相关的错误。

7
我在Microsoft Azure平台上托管了SQL Server和Web应用程序。每当我从本地网络运行Web应用程序(并尝试连接Azure SQL Server)时,我经常遇到上述错误,但在Azure Web应用服务上(即在将Web应用程序托管在Azure后),我从未遇到过此问题。
我知道这个错误非常常见。但在这种情况下,它似乎很奇怪。我已经检查了以下内容:
  1. SQL连接已正确管理。(我使用ADO.Net)
  2. 所有网关IP地址都已列入白名单中。
  3. 没有阻止我的私人网络的防火墙。
任何帮助都将不胜感激。

SQL Server是否在Azure虚拟机中? - Mostafiz
@Mostafiz 忘记将其添加到列表中,但它已经启用。它不在虚拟机中。 - DSA
您使用的是哪个级别的SQL Azure?如果是免费的,由于流量过大,有时可能会被限制。 - Aravind
@Aravind:标准:S0,我想这很不错。 - DSA
2
你需要在服务器名称前面添加"tcp:"。即tcp:<servername>.database.windows.net - MihaelaBlendea
显示剩余5条评论
2个回答

1

您需要提供您的IP地址,SQL Azure需要知道您的应用程序IP。


请问您能否提供如何将其加入白名单的方法? - Nick Gallimore
1
@NickGallimore,你可以在Azure上将db-server加入白名单,并且在设置防火墙规则选项中找到"add ip"选项。 - Ahmad

1

根据Mihaela的评论:您需要在服务器名称前面添加“tcp:”。即tcp:<servername>.database.windows.net


编辑:

这在[文档]中有说明(https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.110).aspx)

Data Source必须使用TCP格式或命名管道格式。

TCP格式如下:

• tcp:\

• tcp:,

TCP格式必须以前缀“tcp:”开头,后跟由主机名和实例名指定的数据库实例。

主机名必须以以下方式之一指定:

• NetBIOS 名称

• IPv4 地址

• IPv6 地址

实例名称用于解析到托管数据库实例的特定TCP/IP端口号。或者,直接指定TCP/IP端口号也是可行的。如果实例名称和端口号都不存在,则使用默认数据库实例。


1
这是有特定原因的吗? - DSA
1
它可能试图默认使用命名管道格式,这将无法与Azure正确解析。因此,最好遵循文档中的建议,即“必须以前缀'tcp:'开头” :) - Dan Rediske
可能是一个老问题。但在文档中指出,连接到Azure SQL数据库时适用TCP格式。 它说- “TCP格式必须以前缀“tcp:”开头,后跟由主机名和实例名称指定的数据库实例。连接到Azure SQL数据库时不适用此格式。当未指定协议时,自动选择TCP以连接到Azure SQL数据库。” - Venkatesan Rethinam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接