您的连接字符串一定有问题。您无法通过命名管道连接到 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
您可以从管理门户获取连接字符串。当您访问数据库时,右侧有连接字符串链接(新门户):
和老传送门差不多:
最后,您必须在防火墙规则中启用“允许其他 Windows Azure 服务连接到此服务器”。
****根据下面的评论更新****
这个连接字符串条目在哪里?在 web.config 中,或在 web.release.config/web.debug.config 中。请注意,web.config 转换在开发时不起作用,仅在打包时起作用!是在本地调试还是部署时出现此错误?
如果在本地,您可以检查您实际使用的连接字符串吗?
请注意,当您尝试在默认 MVC 应用程序中“登录/注册”时,可能会出现默认的“ApplicationServices”连接字符串(位于 apphost.config 中)!该连接字符串假定本地 SQL Express 实例存在且正在运行。这是 Memebership 和 Role 提供者的默认连接字符串。除非您更改会员资格提供程序设置,否则您将无法登录/注册以及任何需要身份验证的操作。