我有一个现有的VS2010 ASP.NET webforms网站,我试图在Azure上作为客户端的POC运行。
我将网站迁移到VS2012项目,添加了Azure云服务项目,并将该网站以及后端数据库部署到3个月的试用帐户。
我已将我的开发机器的IP地址添加到Azure数据库的防火墙规则中,我可以在本地运行该项目并连接到Azure数据库而不会发生任何事故。
在网站的防火墙规则上,我在允许的服务下将Windows Azure服务设置为yes。除了我的开发机器之外,我没有其他规则。
尝试从部署到Azure的站点访问该站点时,出现以下异常:
无法打开登录请求的服务器。 IP地址为“137.135.65.13”的客户端不允许访问服务器。 要启用访问权限,请使用SQL Azure门户或运行sp_set_firewall_rule 在master数据库上为此IP地址创建防火墙规则 或地址范围。此更改最多可能需要五分钟 生效。 用户登录失败。 已为此会话分配了跟踪ID。在需要帮助时,请将此跟踪ID提供给客户支持。
如果我为azure服务器IP地址添加防火墙规则,网站会正常工作,但这不会破坏Azure的整个目的吗?不应该允许Azure服务处理这个?是否需要额外的配置项,或者我在设计中缺少一些基本的东西?我不确定这是否相关,但该网站是由VS2012部署为云服务而不是网站,这是问题吗?我还将数据库添加为云服务中的链接资源,但似乎没有任何效果。
答案 0 :(得分:8)
将数据库添加为WebSite的链接资源将解决问题,而不必使用防火墙设置。
答案 1 :(得分:2)
这是Azure中的一个错误。更新的IP范围不包含在他们的锅炉板“Azure服务”配置中,或类似的东西。
Been happening for a long time (at least ~3 years), unfortunately.
发生Web角色,工作者角色和虚拟机 - 不是特定于网站。我们经常在美国东部通过我们的网络和工作者角色来实现这一点,但在美国北部从未见过它。
我们的解决方法是添加范围:10.0.0.0-10.255.255.255。可能不是最安全的解决方案,但幸运的是,到目前为止,这只是我们的Dev环境,而不是我们的任何生产环境。