我正在使用Windows Azure网站中的以下教程:
https://www.windowsazure.com/en-us/develop/net/tutorials/web-app-with-sql-azure/
(另外:访问windowsazure.com,点击“开发”标题,点击语言下的“.Net”,在“创建你的第一个应用程序”下 - 点击带有SQL Azure的ASP.NET MVC Web应用程序)
我可以在我的开发机器上的Windows Azure模拟环境中运行该应用程序。如果我将连接字符串更改为 生产数据库 ,则应用 在本地开发环境中 。
但是,当我将应用程序部署到Azure时,我收到一条错误消息:“抱歉,处理您的请求时出错。”这出现在呈现的页面中,因此我认为该请求将进入ASP.NET。
我认为我遇到的问题是允许Azure上的生产应用程序连接到SQL Azure数据库。
我认为这是一个防火墙问题,但无法确定IP范围需要什么。 (我之前认为问题在于我在32位环境中运行VS 2010,Windows Azure作为64位环境,但我们从64位环境部署了示例应用程序并遇到了同样的问题)。有关其他详细信息,请参阅我之前在MSDN上发布的有关同一问题的先前查询:http://social.msdn.microsoft.com/Forums/en-US/windowsazuretroubleshooting/thread/23afb5e3-e2ee-4444-aabb-7001ae6c6e6a/#af5284c0-ef4b-4193-b912-d4b7adfb5d21
感谢您提供的任何帮助。我真的希望这个示例应用程序正常运行!
答案 0 :(得分:1)
更新:让教程在不同的计算机和新的64位配置上工作,指向不同的数据中心。
我得到了一台配备64位Windows 7家庭高级版的新笔记本电脑,并安装了Visual Web Developer 2010 Express,所有最新的Azure和MVC SDK。看起来像我认为的防火墙问题,可能是北中央数据中心的数据库连接问题。 (我正在猜测,并且仍然需要针对South Central数据中心测试我的原始配置,看看是否确实如此。但是,North Central数据中心不是托管SQL Azure数据库的可用选择(3月订阅),这是在另一个帖子上讨论这个问题的链接:
如上所述,需要选中“允许其他Windows Azure服务访问此服务器”复选框,并且服务和数据库都需要位于同一个Windows Azure数据中心。
答案 1 :(得分:0)
正如@veblock建议的那样,您可以尝试关闭自定义错误以查看实际错误。
与此同时,您为角色启用防火墙规则所寻求的“IP范围”只是一个复选框:
您只需要选中“允许其他Windows Azure服务访问此服务器”复选框。将自动添加IP范围为“0.0.0.0 - 0.0.0.0”的条目“Microsoft Services”。这是一个内部条目,Microsoft会跟踪自己的IP范围,以便任何Windows Azure数据中心都能够访问此SQL Azure服务器。
但是,是的,您还可以通过远程桌面映射到实例或通过禁用自定义错误来检查真实的错误消息。 ASP.NET MVC也很少有可能未完全安装在Azure实例中。消除此问题的最简单方法是右键单击Web应用程序项目并选择“添加可部署的依赖项”,然后选择ASP.NET MVC。
答案 2 :(得分:0)
感谢您的帮助。我也遇到了这个问题并花了几个小时来调试正在发生的事情,因为一切都在模拟器中按预期工作,但在生产中不起作用。在我将托管服务和数据库服务器移动到同一区域后,问题就消失了。
在原始样本中,还注意到确保两者都在同一区域很重要,但是由于性能原因它提到了,但对我来说它根本不起作用。
” 重要信息:选择部署应用程序时先前选择的区域。这将为您提供最佳性能。 “