0

当我从我的 ASP.NET MVC 应用程序连接到 SQL Azure 时,我收到以下错误。

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

但是,我能够从 SQL Server Management Studio 成功连接到 SQL Azure。我还尝试使用 sqlCMD 进行连接,并且连接没有任何问题。唯一的问题是在运行时出现此异常。

4

1 回答 1

2

您的连接字符串一定有问题。您无法通过命名管道连接到 Windows Azure SQL 数据库(又名 SQL Azure)。唯一支持的协议是 TCP。所以你的 conn 字符串看起来像:

Server=tcp:[servername].database.windows.net,1433;Database=[db_name];User ID=[username]@[servername];Password=[password];Trusted_Connection=False;Encrypt=True;Connection Timeout= 30

您可以从管理门户获取连接字符串。当您访问数据库时,右侧有连接字符串链接(新门户):

SQL Azure 显示连接字符串(新门户)

和老传送门差不多:

SQL Azure 连接字符串旧门户

最后,您必须在防火墙规则中启用“允许其他 Windows Azure 服务连接到此服务器”。

****根据下面的评论更新****

这个连接字符串条目在哪里?在 web.config 中,或在 web.release.config/web.debug.config 中。请注意,web.config 转换在开发时不起作用,仅在打包时起作用!是在本地调试还是部署时出现此错误?

如果在本地,您可以检查您实际使用的连接字符串吗?

请注意,当您尝试在默认 MVC 应用程序中“登录/注册”时,可能会出现默认的“ApplicationServices”连接字符串(位于 apphost.config 中)!该连接字符串假定本地 SQL Express 实例存在且正在运行。这是 Memebership 和 Role 提供者的默认连接字符串。除非您更改会员资格提供程序设置,否则您将无法登录/注册以及任何需要身份验证的操作。

于 2012-07-13T06:41:37.387 回答