我有一個用C#和.Net v4開發的ASP.NET web應用程序。當您登錄並離開頁面大約15-20分鐘時,我收到「堆棧不足以繼續安全地執行程序。」「System.Web.UI.Control.LoadRecursive() - 堆棧不足以繼續安全地執行程序。
」 「 」「據我所知,您無法嘗試捕獲.Net中的stackoverflow。我會想象,遞歸加載網頁和活動會話檢查導致這個錯誤(也許是一個不好的編碼習慣)。我還添加了屏幕截圖,因爲我可以從堆棧跟蹤中找出它。如果有人幫助我,這將有所幫助。
我有一個用C#和.Net v4開發的ASP.NET web應用程序。當您登錄並離開頁面大約15-20分鐘時,我收到「堆棧不足以繼續安全地執行程序。」「System.Web.UI.Control.LoadRecursive() - 堆棧不足以繼續安全地執行程序。
」 「 」「據我所知,您無法嘗試捕獲.Net中的stackoverflow。我會想象,遞歸加載網頁和活動會話檢查導致這個錯誤(也許是一個不好的編碼習慣)。我還添加了屏幕截圖,因爲我可以從堆棧跟蹤中找出它。如果有人幫助我,這將有所幫助。
問題是這樣的調用堆棧是正確的在棧的末端。
有幾件事情來尋找:
.FindControl(string id)
?<asp:Placeholder/>
控件。當您從嵌套控件中引用父代時,它可以是遞歸的,然後由父代重新引用。
它試圖找到什麼控制?我會想象你有一個'while','for'或者'foreach'循環,直到遇到這個循環纔會結束並運行。 –
這不會引起堆棧溢出。它使用['RuntimeHelpers.EnsureSufficentExecutionStack'](http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.runtimehelpers.ensuresufficientexecutionstack.aspx),它引發'InsufficientExecutionStackException',* not * a 'StackOverflowException'。這個例外可以被捕獲。這是測試,以確保有足夠的堆棧執行操作,而不會實際用完堆棧。但是,捕獲此異常可能不會有幫助,因爲可能沒有有效的方法來處理它。 – vcsjones
可能發生的情況是'LoadRecursive',一個框架方法,正在使用它來確保正確的堆棧空間。它失敗*可能*因爲你有非常非常嵌套的ASP.NET控件。 – vcsjones