首页 文章

无法从Azure网站访问SQL Azure数据库,但相同的连接字符串可从本地网站运行

提问于
浏览
2

即使相同的连接字符串在本地网站上运行,我也无法从Azure网站访问SQL Azure数据库 . 错误如下:

System.Data.SqlClient.SqlException (0x80131904): Login failed for user 'XYZ'.
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception,
Boolean breakConnection, Action`1 wrapCloseInAction) at
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, 
Boolean callerHasConnectionLock, Boolean asyncClose) <...>  
Error Number:18456,State:1,Class:14  <...>

检查以前的答案后,

  • 我已将我的数据库添加到我的网站在Azure门户上的链接资源 .
    enter image description here

  • 我已将0.0.0.0 - 255.255.255.255范围添加到我的防火墙排除列表中不需要!
    enter image description here

  • 我确保我的连接字符串用法不允许任何ambiguity .

  • 我确保 ApplicationDbContext 是使用correct connection string构建的 .

我还能尝试什么?

网站代码是here .

3 回答

  • 3

    我不确定您使用的是哪个门户网站,但是...在预览门户网站(portal.azure.com)中,您的数据库设置页面将包含指向服务器的链接,您可以在其中找到防火墙设置 . 除了IP范围之外,还有一个选项允许Azure服务访问您的数据库 . 你需要启用它 .

    manage.windowsazure.com中的相同内容 - 可通过“配置”选项卡访问这些设置 .

  • 5

    我需要更新我的网站设置,如Cannot Access Azure DB Server from Azure Website,需要将整个连接字符串复制粘贴为第二个参数 . 这些设置中适用于我的第三个参数是 SQL Server .

    这在我的案例中是有道理的,因为我通过github在Azure上部署 . 显然当你在github上传我的web.config时,我把我的数据库密码输出,上传到github上的web.config中的连接字符串不能用来访问数据库 . 因此,在Azure网站上指定连接字符串是完全合理的,因为我在那里提供的信息仍然是私有的 . 据推测,这是使用XDT完成的,如图所示here .

    防火墙设置修改是不必要的

  • 2

    您获得的错误不是由于SQL Azure的防火墙ACL问题 . 该错误会在下面的屏幕截图中说明此错误 . 您的连接字符串必须有问题 .

    还要确保在SQL Azure服务器ACL设置中选中了选项以允许Azure服务连接到它 .

    enter image description here

相关问题