手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

引發類型為“System.OutOfMemoryException”的異常

2016-10-29 07:32:07 9053

報錯詳情如圖所示。引發類型為“System.OutOfMemoryException”的異常。

異常詳細信息:System.OutOfMemoryException:引發類型為“System.OutOfMemoryException”的異常。

具體錯誤截圖如下:

未命名0.jpg


錯誤原因:iis應用程序池 內存溢出錯誤 System.OutOfMemoryException

iis應用程序池 內存溢出錯誤 System.OutOfMemoryException


在ASP.NET Web服務器上,ASP.NET所能?用到的內存,通常不會等同于所有的內存數量。在machine.config配置文件中,配置節<processModel>中有一個屬性“memoryLimit”,這個屬性的值是一個百分值,默認為“60”,即指定了ASP.NET進程(在任務管理器中大家就可以看到ASP.NET的進程,IIS5中為aspnet_wp,IIS6中為w3wp)能夠使用所有物理內存的60%。當ASP.NET使用的內存量超過這個限額時,IIS會開始自動回收(recycle)進程,即創建一個新的進程去負責應付Http請求,而將舊進程所占用的內存回收。


當我們有一臺很大內存的服務器時,“memoryLimit”這個值是需?進行適當的調整的。比如我們準備了一臺chemas-microsoft-com ffice marttags" />t="on">4G內存的服務器,那么t="on">4G×60%=t="on">2.4G。但是,對于Win32操作系統,一個進程所能占用的所有內存空間只有t="on">2G。當ASP.NET進程占用的內存開始達到t="on">2G時,由于它并沒有達到t="on">2.4G的“回收閾值”,所以IIS不會啟動recycle進程操作,但是由于Win32的限制,實際上已經不能給這個進程分配更多的內存了,于是,OutOfMemoryException就很可能會被拋出了。為了避免這樣的情況,我們就必須將“memoryLimit”適當調小,以讓IIS更早的進行進程回收。


微軟推薦的ASP.NET進程占用內存是不超過60%,并最好使計算出的實際值不超過t="on">800M。就是說,對于一臺t="on">4G內存的服務器,最好將“memoryLimit”屬性設置成“20”。設置一個適當的回收閾值,讓IIS適時的進行進程回收,對于保證整個服務器的穩定運行,避免OutOfMemoryException是非常重要的。


在IIS6中,ASP.NET進程的回收閾值不再由配置節中的“memoryLimit”屬性決定,而是由IIS管理器中的應用程序池配置中的設置決定。


但是,即使正確設置了這些配置,也不能保證完全避免OutOfMemoryException的發生,原因可能是多樣而復雜的,比如內存回收操作可能耗時太多等等。開發人員要注意的,就是在代碼中時刻牢記不要無謂的使用和浪費內存。:)


如果你有一臺大內存的服務器,同時對Win32操作系統中對于進程最高使用t="on">2G內存的限制很郁悶,可選的解決方法有兩個:


解決方法:回收程序池即可

提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: