Exception of type System.OutOfMemoryException was thrown.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.OutOfMemoryException: Exception of type System.OutOfMemoryException was thrown.Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[OutOfMemoryException: Exception of type System.OutOfMemoryException was thrown.]
Posted by venjiang on 2005-7-13 10:23 PM
ちょうどRSSリストを見ていると、このような資料が見えて、あなたに役に立つかどうか分かりません.
------------------------------------------------------------------------------------------
ASP.NETでのOutOfMemoryException
ブログ園で園友が書いた「OutOfMemoryException異常をどう処理するか?」という記事を見て、そこで皆さんと交流したいと思います.NETでOutOfMemoryExceptionの問題が発生.実際、ASP.NET Webサーバ上、ASP.NETで使用できるメモリは、通常、すべてのメモリ数に等しくありません.マシーンでconfigプロファイルでは、コンフィギュレーションセクション
に「memoryLimit」という属性があります.この属性の値はパーセンテージ値で、デフォルトは「60」で、ASPが指定されています.NETプロセス(タスクマネージャではASP.NETのプロセスが見られ、IIS 5ではaspnet_wp、IIS 6ではw 3 wp)はすべての物理メモリの60%を使用できます.ASP.NETが使用するメモリ量がこの限度額を超えると、IISは自動回収(recycle)プロセスを開始します.すなわち、Httpリクエストに対応する新しいプロセスを作成し、古いプロセスで使用されたメモリを回収します.大きなメモリを持つサーバがある場合、「memoryLimit」という値は適切に調整する必要があります.たとえばchemas-microsoft-comfficemarttags"/>t="on">4 Gメモリのサーバを用意すると、t="on">4 G×60%=t="on">2.4G.ただし、Win 32オペレーティングシステムの場合、1つのプロセスで使用できるすべてのメモリ領域はt="on">2 Gのみである.ASP.NETプロセスが占有するメモリがt="on">2 Gに達し始めると、t="on">2.4 Gの"回収閾値"に達していないため、IISはrecycleプロセス操作を開始しないが、Win 32の制限により、実際にはこのプロセスにより多くのメモリを割り当てることができなくなり、OutOfMemoryExceptionが投げ出される可能性が高い.このような状況を回避するために、IISがより早くプロセス回収を行うように「memoryLimit」を適切に小さくしなければならない.マイクロソフトが推奨するASP.NETプロセスのメモリ消費量は60%以下であり、計算された実際の値はt=「on」>800 Mを超えないことが望ましい.つまり、t="on">4 Gメモリのサーバでは、"memoryLimit"属性を"20"に設定することが望ましい.IISが適時にプロセス回収を行うように適切な回収閾値を設定することは,サーバ全体の安定した動作を保証するためにOutOfMemoryExceptionを回避する上で非常に重要である.IIS 6において、ASP.NETプロセスの回収しきい値は、コンフィギュレーション・セクションの「memoryLimit」プロパティではなく、IISマネージャのアプリケーション・プールコンフィギュレーションの設定で決まります.しかし、これらの構成が正しく設定されていても、OutOfMemoryExceptionの発生を完全に回避することは保証されません.メモリ回収操作に時間がかかるなど、多様で複雑な原因がある可能性があります.開発者が注意しなければならないのは、コードの中で無駄な使用やメモリの浪費をしないことを常に覚えておくことです.:)大きなメモリを持つサーバがある場合、Win 32オペレーティングシステムでプロセスの最高使用量t="on">2 Gメモリの制限が憂鬱な場合、オプションの解決方法は2つあります:1、/3 GBモードでコンピュータを起動し、方法参加文後のリンク2、Windows Server 2003 64 bits Editionを使用