C#程序出现内存溢出错误的解决办法
上周一個C#開發的站點出現了內存溢出錯誤:“引發類型為“System.OutOfMemoryException”的異常”
因為頁面眾多一時最初難以確定問題源,找了很久才發現了導致內存溢出的代碼。把這次的方法總結一下。
癥狀:每個一段時間才會出現內存溢出的錯誤,服務器上會出現大量的頁面請求被堵塞。回收iis程序池后,會短暫正常,但是過一段時間后又出現內存溢出,時間間隔長短不一,沒有規律。
解決步驟:1,判斷是某個頁面被請求到時引發的內存溢出錯誤。
????????????? 2,尋找有問題的頁面
?????????????????? 存在內存溢出錯誤代碼的頁面,當被請求時,應該不會被執行結束。
?????????????????? 所以,通過OnPreInit方法,在所有頁面被請求時,將該頁面的地址,請求時間記錄到數據庫中。每次請求都會在數據庫中增加一條記錄。
?????????????????? 在頁面執行到OnUnload方法時,再將該頁面的總執行時間更新到上面提到的請求記錄中。(新增時,總執行時間默認為-1)
??????????????????
通過上述方式,分析幾次內存溢出發生時,沒有被執行結束的頁面。最終確定的問題頁面所在,修改代碼上傳后,內存溢出問題解決。
轉載于:https://www.cnblogs.com/tc_Sky/archive/2010/07/29/1787764.html
總結
以上是生活随笔為你收集整理的C#程序出现内存溢出错误的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 辅助类——记录错误信息
- 下一篇: CLR via C# 读书笔记 1-2