2013-02-07 105 views
0

我正在開發ASP.NET MVC(仍然是v2)Azure Web應用程序。我遇到了一個似乎需要我單步執行MVC代碼的問題。我可以做到這一點,但也需要能夠檢查代碼,因此我需要在調試器中成爲未優化的版本(以避免「無法獲取本地或參數的值」)消息。在Azure計算仿真器中調試ASP.NET MVC系統代碼

規避優化的標準方法(http://blogs.msdn.com/b/sburke/archive/2008/01/29/how-to-disable-optimizations-when-debugging-reference-source.aspx)似乎不適用於在計算模擬器中運行。

我也嘗試過創建System.Web.Mvc項目的本地調試版本,但是當我嘗試在計算模擬器中啓動它時,我的web角色掛起。

所以...用下面的任何幫助,將不勝感激:

運行在Visual Studio(2010年)的Azure的web應用程序,使其忽略系統DLL的代碼優化。

OR

創建一個本地系統調試版本,以便它可以通過Azure的web應用程序中引用正在調試的計算仿真。

回答

0

如果Azure計算模擬器給你提出問題,你可以使用IIS Express運行你的MVC項目。只需右鍵單擊並選擇調試/啓動新實例。

+0

感謝您的建議 - 我不知道可以做到這一點。看起來它不會對這個Web應用程序沒有太多重構 - 它爲初學者使用特定於Azure的日誌記錄和存儲。 – gruve

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文件移動到程序集目錄時,我需要以管理員身份運行命令提示符。

一旦我可以在調試時查看變量,我很快意識到我的錯誤在哪裏。