Problembehandlung bei Ausnahmen: System.OutOfMemoryException

Aktualisiert: November 2007

Eine OutOfMemoryException-Ausnahme wird ausgelöst, wenn ein Versuch zur Reservierung von Arbeitsspeicher fehlschlägt.

Tipps

  • Stellen Sie beim Erstellen eines Arrays sicher, dass die Größe richtig ist.
    Visual Basic-Benutzer finden weitere Informationen unter Arrays in Visual Basic.

    C#-Benutzer finden weitere Informationen unter Arrays (C#-Programmierhandbuch).

  • Stellen Sie sicher, dass genügend Arbeitsspeicher für interne Zwecke und neue verwaltete Objekte vorhanden ist.
    Wenn Sie in .NET Compact Framework programmieren, löst die Common Language Runtime diese Ausnahme aus, wenn nicht genügend Speicher für interne Zwecke oder neue verwaltete Objekte zur Verfügung steht. Um diese Ausnahme zu vermeiden, programmieren Sie keine umfangreichen Methoden, die 64 KB Speicher oder mehr beanspruchen.

Hinweise

Übermäßige Auslastung des verwalteten Speichers hat im Allgemeinen folgende Ursachen:

  • Einlesen umfangreicher Datasets in den Arbeitsspeicher.

  • Erstellen übermäßig vieler Cacheeinträge.

  • Hoch- oder Herunterladen großer Dateien.

  • Übermäßige Verwendung von regulären Ausdrücken oder Zeichenfolgen während des Analysieren von Dateien.

  • Umfangreicher Ansichtszustand.

  • Zu viele Daten im Sitzungszustand oder zu viele Sitzungen.

Im Zusammenhang mit dieser Ausnahme wird möglicherweise zusätzlich die Meldung "Für diesen Vorgang ist nicht genügend Speicher verfügbar." ausgegeben. Diese Meldung wird angezeigt, wenn eine Methode an einem COM-Objekt aufgerufen wird, die einen benutzerdefinierten Typ zurückgibt, der ein sicheres Array enthält (ein Array, das keine feste Größe hat). Dies liegt daran, dass .NET Framework ein Strukturfeld nicht mit einem sicheren Arraytyp marshallen kann.

Siehe auch

Aufgaben

Gewusst wie: Weitere Informationen über eine Ausnahme mit dem Ausnahmen-Assistenten

Gewusst wie: Deklarieren einer Arrayvariablen

Referenz

OutOfMemoryException