在Azure Compute Emulator中调试ASP.NET MVC系统代码

时间:2013-02-07 20:08:07

标签: asp.net-mvc azure

我正在开发一个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中的代码优化。

OR

创建本地系统调试版本,以便可以在Compute Emulator中调试的Azure Web应用程序引用它。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我终于能够在计算模拟器中调试时获得未经优化的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文件移动到汇编目录中时,我需要以管理员身份运行命令提示符。

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