例外のトラブルシューティング : System.OutOfMemoryException

OutOfMemoryException 例外は、メモリの割り当てに失敗するとスローされます。

関連するヒント

  • 配列を作成しているときは、サイズが正しいことを確認します。
    詳細については、「Visual Basic における配列」を参照してください (Visual Basic を使用している場合)。

    C# を使用している場合、詳細については、「配列 (C# プログラミング ガイド)」を参照してください。

  • 内部処理用および新しいマネージ オブジェクト用に十分なメモリがあることを確認してください。
    .NET Compact Framework でプログラミングしている場合、内部処理用および新しいマネージ オブジェクト用に十分なメモリがないときは、共通言語ランタイムによってこの例外がスローされます。 この例外を回避するには、64 KB 以上のメモリを消費する大規模メソッドのプログラミングを行わないでください。

解説

一般に、次の場合には、マネージ メモリの使用量が過度に多くなります。

  • 大容量のデータ セットをメモリに読み込んだ。

  • 多数のキャッシュ エントリを作成した。

  • 大きなファイルをアップロードまたはダウンロードした。

  • ファイルの解析時に正規表現または文字列を過度に使用した。

  • 過度のビューステート。

  • セッション状態のデータが大きすぎる。または、セッション数が多すぎる。

セーフ配列 (サイズが固定されていない配列) を含むユーザー定義型を返す COM オブジェクトに対してメソッドを呼び出す場合、"この操作を完了するために利用できる記憶領域が不足しています。" というメッセージと共にこの例外がスローされることがあります。 これは、セーフ配列型を持つ構造体フィールドを .NET Framework がマーシャリングできないために起こります。

参照

処理手順

方法: 例外処理アシスタントを使用する

関連項目

OutOfMemoryException