【问题标题】:debug ASP.NET MVC system code in Azure Compute Emulator在 Azure Compute Emulator 中调试 ASP.NET MVC 系统代码
【发布时间】:2013-02-09 06:34:25
【问题描述】:

我正在开发一个 ASP.NET MVC(仍然是 v2)Azure Web 应用程序。我遇到了一个问题,似乎需要我单步执行 MVC 代码本身。我可以做到这一点,但还需要能够在我步进时检查代码,所以我需要在调试器中成为未优化版本(以免得到“无法获取本地或参数的值......”)消息.

绕过优化的标准方法 (http://blogs.msdn.com/b/sburke/archive/2008/01/29/how-to-disable-optimizations-when-debugging-reference-source.aspx) 似乎不适用于在 Compute Emulator 中运行。

我还通过创建 System.Web.Mvc 项目的本地调试版本来尝试此操作,但是当我尝试在 Compute Emulator 中启动它时,我的 Web 角色挂起。

所以...任何有关以下任一方面的帮助将不胜感激:

在 Visual Studio (2010) 中运行 Azure Web 应用程序,以便它忽略系统 dll 中的代码优化。

创建本地系统调试版本,以便在计算模拟器中调试的 Azure Web 应用可以引用它。

【问题讨论】:

    标签: asp.net-mvc azure


    【解决方案1】:

    如果 Azure Compute Emulator 出现问题,您可以使用 IIS Express 运行 MVC 项目。只需右键单击并选择调试/启动新实例。

    【讨论】:

    • 感谢您的建议 - 我不知道有人能做到这一点。如果不进行大量重构,它似乎不适用于此 Web 应用程序 - 它使用 Azure 特定的日志记录和存储供初学者使用。
    【解决方案2】:

    我终于能够在计算模拟器中调试时获得未优化的 ASP.NET 代码。在 MSDN (http://msdn.microsoft.com/en-us/library/9dd8z24x%28v=vs.100%29.aspx) 和其他地方 (http://martin.bz/blog/asp-net-mvc-source-debugging-the-easy-way 等) 上描述的基本方法是放置一个 .ini 文件,告诉 JIT 编译器不要在与 DLL 相同的目录中进行优化。

    第一个挑战是确定它在哪里;我终于明白要查看 Compute Emulator UI 中的日志并查看它们从何处加载 DLL(在本例中为 System.Web.Mvc)。

    第二个挑战是在那里获取 .ini 文件。 Windows 资源管理器不起作用,因为它使用不同的方式来查看程序集缓存,无法直接访问文件。我读过的一篇文章提醒我,使用命令提示符可能会给我这种访问权限,而且确实如此。最后一步是意识到,当命令提示符不允许我将 .ini 文件移动到程序集目录时,我需要以管理员身份运行命令提示符。

    一旦我可以在调试时查看变量,我很快就意识到我的错误在哪里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-26
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多