【问题标题】:Cannot access SQL Azure DB from Azure website but same connection string works from local website无法从 Azure 网站访问 SQL Azure DB,但从本地网站可以使用相同的连接字符串
【发布时间】:2016-01-26 00:45:09
【问题描述】:

我无法从 Azure 网站访问 SQL Azure DB,即使本地网站上的连接字符串相同。错误如下:

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  <...>

查看之前的答案后,

  1. 我已将我的数据库添加到 Azure 门户上我网站的链接资源中。
  2. 我已将 0.0.0.0 - 255.255.255.255 范围添加到我的防火墙排除列表中 不需要!
  3. 我已确保我的连接字符串使用不允许任何ambiguity
  4. 我已确定ApplicationDbContext 是使用correct connection string 构建的。

我还能尝试什么?

网站代码是here

【问题讨论】:

    标签: c# azure razor azure-storage azure-web-app-service


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我已经更改了防火墙设置,但不幸的是它并没有帮助解决连接问题。
    【解决方案2】:

    我需要像Cannot Access Azure DB Server from Azure Website 一样更新我的网站设置,需要复制粘贴整个连接字符串作为第二个参数。这些设置中对我有用的第三个参数是SQL Server

    这对我来说很有意义,因为我通过 github 部署在 Azure 上。显然,当您在 github 上上传我的 web.config 时,我将数据库密码取出,上传到 github 上的 web.config 中的连接字符串不能用于访问数据库。因此,在 Azure 网站上指定连接字符串非常有意义,因为我在那里提供的信息仍然是私有的。据推测,这是使用 XDT 完成的,如 here 所示。

    不需要修改防火墙设置。

    【讨论】:

      【解决方案3】:

      您遇到的错误不是由于 SQL Azure 的防火墙 ACL 问题。该错误会在下面的屏幕截图中显示类似此错误的内容。您的连接字符串肯定有问题。

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

      【讨论】:

        猜你喜欢
        • 2023-03-12
        • 2012-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-22
        相关资源
        最近更新 更多