【问题标题】:Azure App Service can't access Azure SQL DB, but local machine works. Allow-All-IP rule already in place.Azure App Service 无法访问 Azure SQL DB,但本地机器可以工作。 Allow-All-IP 规则已经到位。
【发布时间】:2018-09-01 07:41:42
【问题描述】:

目前正在开发一个 ASP.NET Web 应用程序。我想部署到 Azure 应用服务,但在应用服务上运行时,找不到与我的 Azure SQL 服务器的连接。

当我在本地计算机上运行时,与 Azure SQL 服务器的连接正常。我还可以通过 SQL Management Studio 连接到我的 Azure SQL 服务器。

在 Azure SQL 服务器上,我设置了防火墙规则以允许所有 IP 地址,并允许访问 Azure 服务:

在过去的几天里,我对这个问题的解决方案进行了大量搜索,但我找不到解决方案。

【问题讨论】:

  • 您的连接字符串是在 web.config 中还是在 Azure 中指定?尝试编写一些代码将 SQL 连接字符串输出到您的日志;从本质上讲,该错误几乎可以肯定意味着您部署的代码使用了错误的连接字符串。
  • 事实证明,部署的代码确实与本地代码不同。我在服务器资源管理器中使用“附加调试器”选项来测试应用服务上的更改。这显然不会重建项目。我重建了项目,现在可以正常工作了。
  • 快速提示,Allow access to Azure services 已经确保将应用服务等第一方 Azure 服务列入 SQL 防火墙的白名单。不需要额外的允许所有。

标签: asp.net sql-server azure azure-sql-database azure-web-app-service


【解决方案1】:

您可以在属性上轻松找到应用服务所有出站 IP 地址

但您需要在防火墙中设置所有出站 ip

【讨论】:

  • 我添加了所有的出站IP,仍然遇到同样的问题:(
  • 你的连接字符串是什么?你可以屏蔽一些安全信息
【解决方案2】:

我遇到了同样的问题。更改服务器管理员密码解决了该问题。我能够在本地运行连接,但在我重置服务器管理员密码之前,已发布的应用程序无法使用服务器管理员凭据登录。

【讨论】:

    【解决方案3】:

    我已经为防火墙规则添加了虚拟 IP,它解决了这个问题。

    如需更多故障排除,请使用应用洞察。大多数情况下,它显示了确切的问题。

    【讨论】:

      【解决方案4】:

      在 sql 数据库概述页面上的 azure prortal 上单击设置服务器防火墙 允许 Azure 服务和资源访问此服务器应设置为是,其余设置应默认设置 保存您的更改 它适用于我的 asp.net 和 sql db 位于 azure env

      【讨论】:

        【解决方案5】:

        在花了几个小时调整我的 appsettings.json、Azure 防火墙设置、权限……之后,我最终设置了我的 应用服务 > 设置 > 配置 > 连接字符串。在这种情况下,Azure 似乎完全忽略了您的 appsettings.json

        【讨论】:

        • 正是我对 Net 5 的问题。稍后我将不得不研究原因。谢谢
        • 感谢主!这为我做了。我从 SSMS 迁移了两个数据库,其中一个每次都运行良好。多次尝试。但是第二个总是失败。但没有更多了。
        【解决方案6】:

        适用于@Tuco 提供的解决方案。只是要记住的附加设置,因为您提到了 azure sql,请不要忘记将类型更改为 SQLAzure。

        【讨论】:

          猜你喜欢
          • 2018-11-25
          • 2016-01-26
          • 1970-01-01
          • 2012-11-23
          • 1970-01-01
          • 2021-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多