【问题标题】:Can't connect to Azure DB from Azure website无法从 Azure 网站连接到 Azure DB
【发布时间】:2023-03-12 08:36:02
【问题描述】:

我有一个现有的 VS2010 ASP.NET 网络表单站点,我正试图在 Azure 上运行它作为客户端的 POC。

我将站点迁移到 VS2012 项目,添加了 Azure 云服务项目,并将站点和后端数据库部署到 3 个月试用帐户。

我已将我的开发机器的 IP 地址添加到 Azure 数据库的防火墙规则中,我可以在本地运行项目并连接到 Azure 数据库而不会出现任何问题。

在网站的防火墙规则中,我在允许的服务下将 Windows Azure 服务设置为是。除了我的开发机器的规则之外,我没有其他规则。

当尝试从部署到 Azure 的站点访问该站点时,我收到以下异常:

无法打开登录请求的服务器。不允许 IP 地址为“137.135.65.13”的客户端访问服务器。 要启用访问,请使用 SQL Azure 门户或运行 sp_set_firewall_rule 在主数据库上为此 IP 地址创建防火墙规则 或地址范围。此更改最多可能需要五分钟 生效。 用户登录失败。 已为该会话分配了跟踪 ID 。当您需要帮助时,将此追踪 ID 提供给客户支持。

如果我为 azure 服务器 IP 地址添加防火墙规则,该站点可以正常工作,但这不会破坏 Azure 的全部目的吗?不应该让 Azure 服务处理这个问题吗?是否需要额外的配置项,或者我缺少设计中的一些基本内容?我不确定这是否相关,但该站点是由 VS2012 部署为云服务而不是网站,这是问题吗?我还将数据库添加为云服务中的链接资源,但这似乎没有任何效果。

【问题讨论】:

  • 您是否尝试将 SQL 服务器数据库链接为来自云服务 like this 的资源?
  • 我会假设,由于网站是 Windows Azure 的 预览 功能,它分配的一些 IP 地址范围不在“Azure 服务”列表中。我相信当网站变得普遍可用时,这将改变。可能导致问题的另一件事可能是位置不匹配 - 即您的网站位于北欧,而您的 SQL Azure 服务器位于西欧。无论哪种方式,我以前都没有遇到过这样的问题,所以我把它留给网站正在预览的事实。

标签: asp.net sql-server azure


【解决方案1】:

将数据库添加为网站的链接资源将解决问题,而无需担心防火墙设置。

  1. 在 m.anage.windowsazure.com 中访问您的网站。
  2. 转到链接资源标签。
  3. 按页面底部的LINK按钮
  4. 从模式对话框中选择您的数据库

【讨论】:

  • 注意:这对我也有用,但它花了大约一个小时才开始,所以在你放弃之前给它时间......
【解决方案2】:

这是 Azure 中的一个错误。较新的 IP 范围不包含在其样板“Azure 服务”配置或类似配置中。

Been happening for a long time (at least ~3 years), unfortunately.

也发生在 Web 角色、辅助角色和虚拟机上 - 不特定于网站。我们经常在美国东部使用我们的 Web 和 Worker Roles 来实现这一点,但在美国北部从未见过一次。

我们的解决方法是添加范围:10.0.0.0-10.255.255.255。可能不是最安全的解决方法,但幸运的是,到目前为止,它只影响了我们的开发环境,而不是我们的任何生产环境。

【讨论】:

  • 最初评论说您可以从Datacenter IP Ranges 文档中输入各个子网范围。但是:我查看并找不到包含 OP 的 IP 地址的范围(美国西部的 137.135.0.0/18 范围,我认为只允许通过 137.135.63.x 覆盖它)。如果 SQL 防火墙使用相同的 IP 范围文档作为输入,那么这证实了@Jaxidian 的断言,您需要手动输入 IP 地址,直到范围文档更新。
  • 另外请注意,对于我们来说,无法在 David 提到的内容中找到公共 IP 表明我们必须添加私有 IP 范围。似乎有点倒退,但这是我们的经验。
  • 这是不可接受的。微软需要把它放在一起!真是浪费时间。
猜你喜欢
  • 2013-11-27
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
  • 2019-03-30
  • 2018-01-05
相关资源
最近更新 更多