2012-02-27 81 views
4

按照MSDN有關的System.Web的httpRuntime executionTimeout:調試請求超時(System.Web.HttpException)

This time-out applies only if the debug attribute in the compilation element is 
False. Therefore, if the debug attribute is True, you do not have to set this 
attribute to a large value in order to avoid application shutdown while you are 
debugging. 

這對於大多數調試一個偉大的功能,因爲它能夠在調試過程中活路請求。如果我想通過本身調試超時錯誤怎麼辦?無論我在任何地方設置了什麼超時屬性,.NET似乎都允許無限的時間,所以我從來沒有捕捉到異常來調試!

回答

0

如果您能夠在本地生成長時間運行的執行,只需轉到調試菜單,然後選擇「全部中斷」。然後,您可以使用Debug - > Windows - > Threads視圖查看所有活動線程。你可能會確定需要花費很長時間。

或者,您可以設置您的Debug = false;然後將Visual Studio附加到您的進程中,並將其設置爲在拋出正在拋出的ThreadAbortExceptions實例時中斷。

或者,您可以在檢測到長時間運行的執行時將DebugDiag設置爲capture a dump file。您可以使用WinDbg(艱難)或Visual Studio 2010及更高版本來加載這些轉儲文件並檢查程序的運行狀態。

最後,您可以嘗試反思性地更改RequestTimeoutManager類的行爲,該類定期調用TimeoutIfNeeded(現在是DateTime)。然而,我不能平凡地看到一種方法來改變這種使用debug = false的行爲。