<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hopes

    Start Here..

     

    續(xù) ASP.NET中大型Web應(yīng)用OutOfMemoryException異常

    相信做ASP.NET中大型Web應(yīng)用的人都碰到過OutOfMemoryException這個異常,對于這個問題我研究了很久,在微軟的技術(shù)文檔上也了解過此問題出現(xiàn)的原因,說實話,到目前我仍然沒有完美的解決方案,這里只是把我處理該問題的一些經(jīng)驗提出來和大家一起分享,盡可能的避免該問題的發(fā)生。

    1) 首先,在硬件的配置上,出現(xiàn)該問題的原因我想很多人已經(jīng)知道了,那就是IIS對于內(nèi)存的管理存在一些限制,普遍的認(rèn)識是800M的線程內(nèi)存使用上限(通過我的一些客戶實踐證明的確如此,甚至更低...),不管是w3wp還是aspnet_wp,這個限制對ASP.NET應(yīng)用服務(wù)器的機(jī)器配置而言其意義是很明顯的,超過2G的內(nèi)存對于單純的Web服務(wù)器而言作用是很微小的,所以在Web服務(wù)器的配置上可在CPU的數(shù)量方面多考慮。

    2) IIS配置上的方案,IIS5.0可安裝一個IIS5Recycle程序,該程序采用服務(wù)的形式來回收工作進(jìn)程,安裝說明:http://support.microsoft.com/?id=322350,對于IIS6.0可以在應(yīng)用程序池的配置上設(shè)置自動回收工作線程的時間,我一般都會設(shè)在凌晨2點(diǎn):)

    3) 在.NET Framework的配置上,修改machine.config配置文件中的配置節(jié)<processModel>的屬性“memoryLimit”,這個屬性的值默認(rèn)為“60”,是一個百分比數(shù)據(jù),我們需要按照服務(wù)器實際的內(nèi)存數(shù),再根據(jù)800M的上限來設(shè)置這個值,那么在達(dá)到這個閥值時IIS會自動回收進(jìn)程

    4) 在Web應(yīng)用程序的開發(fā)中,必須盡可能的減少對內(nèi)存使用的浪費(fèi),及時釋放資源,我想說明的有3點(diǎn):1、通過代碼主動調(diào)用Dispose方法進(jìn)行資源釋放,2、對于實體類盡可能復(fù)用,不做多余的聲明和創(chuàng)建,3、減少Session的使用,縮短Session的有效期,尤其對于大數(shù)據(jù)對象盡量不要存儲在Session中

    5) 一個比較通用的辦法,在Web應(yīng)用程序的基類中通過try{}catch{}來主動捕捉OutOfMemoryException異常,發(fā)現(xiàn)該異常后直接調(diào)用GC.Collect()進(jìn)行強(qiáng)制垃圾回收。

    最后,有很多朋友提到32位系統(tǒng)對于大內(nèi)存使用方面可以打開3G模式,這個本身沒有什么問題,只是根據(jù)個人經(jīng)驗,其對單純Web應(yīng)用程序的幫助不大,如果Web服務(wù)器還有更多的用途當(dāng)然也建議采用此模式.



    如果您正在 .NET Compact Framework 上進(jìn)行編程,當(dāng)沒有足夠的內(nèi)存可用于內(nèi)部用途或新的托管對象時,公共語言運(yùn)行庫會引發(fā)此異常。要避免此異常,應(yīng)避免編寫占用 64KB 或更多內(nèi)存的大方法。
    備注
    過多的托管內(nèi)存使用量通常由以下因素造成:
    1 將大型數(shù)據(jù)集讀入內(nèi)存中。
    2 創(chuàng)建過多的緩存條目。
    3 上載或下載大文件。
    4 在分析文件時過多地使用正則表達(dá)式或字符串。
    5 過多的視圖狀態(tài)。
    6 會話狀態(tài)中有過多的數(shù)據(jù)或者會話過多。
    當(dāng)對 COM 對象調(diào)用一個方法,并且該方法返回包含安全數(shù)組(大小不固定的數(shù)組)的用戶定義類型時,可能引發(fā)此異常,并附帶一條額外的消息“存儲空間不足,無法完成此操作”。這是因為 .NET Framework 無法封送帶有安全數(shù)組類型的結(jié)構(gòu)字段。

    REF:

    http://blog.csdn.net/limmo/archive/2007/01/20/1488329.aspx

    http://hi.baidu.com/melovesmile/blog/item/f69efffd2309a085b901a0bb.html

    http://hi.baidu.com/anwyo/blog/item/921e93132e3cf6d3f6039e75.html

    http://www.cnblogs.com/kwklover/archive/2005/05/05/149787.html

    http://www.360doc.com/content/06/1119/16/1_265250.shtml

    IIS:w3wp.exe進(jìn)程占用cpu和內(nèi)存過多的處理辦法 http://www.cnblogs.com/emanlee/archive/2010/02/06/1664874.html



    posted on 2012-12-14 15:21 ** 閱讀(126) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊

    收藏夾

    C#學(xué)習(xí)

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久精品国产亚洲av水果派| 高清在线亚洲精品国产二区| 亚洲AV无码乱码国产麻豆| 一个人看的www免费高清| 亚洲国产精品成人久久蜜臀 | 亚洲国产二区三区久久| 国产免费播放一区二区| 最新亚洲成av人免费看| 福利免费在线观看| 亚洲精品乱码久久久久久蜜桃不卡 | 在线免费观看伊人三级电影| 狠狠亚洲婷婷综合色香五月排名 | 亚洲JIZZJIZZ中国少妇中文| 免费人成动漫在线播放r18| 亚洲国产成人爱av在线播放| 久久久久久噜噜精品免费直播| 在线播放亚洲第一字幕| 男人j进入女人j内部免费网站 | 国产精品国产亚洲精品看不卡| 99视频在线免费观看| 亚洲网址在线观看| 国产在线观看片a免费观看 | 一级毛片a免费播放王色| 亚洲综合伊人久久综合| 最近免费最新高清中文字幕韩国| 亚洲狠狠狠一区二区三区| 好大好深好猛好爽视频免费| 羞羞的视频在线免费观看| 亚洲永久精品ww47| 最近高清中文字幕免费| 亚洲乱人伦中文字幕无码| 国产亚洲精品精品国产亚洲综合| 久草福利资源网站免费| 色在线亚洲视频www| 亚洲偷自拍拍综合网| 一级毛片aaaaaa免费看| 亚洲人成色在线观看| 久久影院亚洲一区| 日本zzzzwww大片免费| 大桥未久亚洲无av码在线| 亚洲成a人片在线观看无码 |