0

我正在开发一个 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)没有t 似乎适用于在 Compute Emulator 中运行。

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

所以...任何对以下任何一项的帮助将不胜感激:

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

或者

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

4

2 回答 2

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 文件移动到程序集目录时,我需要以管理员身份运行命令提示符。

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

于 2013-02-08T22:34:25.120 回答
0

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

于 2013-02-07T21:09:39.937 回答