1

我们有一个最近从 MVC 3 升级到 MVC 4 和从 Visual Studio 2010 升级到 2012 的应用程序。我们正在尝试将它部署到 Azure,但它似乎不想在那里运行。它在本地工作,在 IIS Express 和 Azure 模拟器中。我们可以通过 Visual Studio 和命令行上的 msbuild 项目构建图像。我们也部署得很好。

然后,当我们浏览到部署的 URL 时,我们会收到 500 错误,并显示消息“您要查找的资源有问题,无法显示”。这不是 YSOD,这让我相信应用程序甚至无法启动,但上面的消息是我得到的唯一反馈。

我们已经尝试了很多方法来让它工作:

  • 升级到最新的 Azure SDK
  • 将应用程序上的目标框架更改为 .NET 4.5
  • 部署在 Windows Server 2012 实例上

似乎没有任何帮助。如果您确切知道什么是错的,请赐教。但是,在我浏览时找到有关我收到的 500 错误消息的详细信息会非常有帮助。我怎么能得到那个?

4

2 回答 2

4

解决此问题的最佳方法是将 RDP 连接到 Azure VM,打开 IE,然后浏览到 DIP。DIP 是 VM 的内部 IP 地址(10.xxx 或 100.xxx 地址),您可以从 ipconfig 获得。这将为您提供从运行 IIS 的服务器浏览网站时您期望获得的更详细的错误信息。我怀疑一旦您获得详细的错误信息,它会立即变得明显,根本原因可能是以下两件事之一:

  1. 您没有为其设置 CopyLocal=true 的 DLL 引用。
  2. web.config 中的一个元素,没有<configSections>.
于 2013-09-04T14:59:03.990 回答
2

我将提供一些帮助我调试 Azure 部署问题的技巧:

  1. 发布时打开 Intellitrace。在发布菜单的设置屏幕上,在高级设置下,选中“启用 Intellitrace”复选框。然后你可以去VS 2012的服务器资源管理器,找到你的Azure实例,右键单击并选择“查看Intellitrace日志”。

  2. 就像@kwill 所说,您可以启用 RDP 并远程连接到盒子。如果您浏览文件系统,您会发现 Intellitrace 日志、实际部署的配置文件等。

  3. 从 Azure SDK 1.8 升级到 2.0 的过程很糟糕。您需要确保 100% 的 DLL 引用 SDK 2.0。我们一直缺少参考资料。我建议仔细阅读每个项目和参考,并确保它们使用的是 2.0。

  4. 我会在应用程序中启用日志记录并记录到 Azure SQL 数据库或 Azure 表存储。这已经救了我们几次。

一般来说,没有什么比 Intellitrace 日志更好的了,并且能够 RDP 进入并通过事件查看器、IIS 日志、配置文件等。

于 2013-09-04T15:56:41.707 回答