Ausnahmefehler - Nicht genügend Speicher vorhanden.

  • VB.NET

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von VriL.

    Ausnahmefehler - Nicht genügend Speicher vorhanden.

    Hallo zusammen,

    meine Anwendung zeigt mir plötzlich unten als Bild angefügten Fehler an.
    Verwendet wird Visual Studio 2012.
    Beim Ausschreiben des Word Templates (Eingebettete Ressource) wird diese Fehlermeldung angezeigt.
    Da nur Textmarken ausgefüllt werden ist die Datenmenge relativ klein (ca. 40 Zahlen).
    Komischerweise funktioniert der Code wenn ich das Programm aus Visual Studio starte.

    Der Fehler scheint mit folgendem Code zusammen zu hängen:

    Quellcode

    1. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
    2. Dim tempfile As String = Path.GetTempFileName()
    3. File.WriteAllBytes(tempfile, My.Resources.protokoll_de)
    4. Dim oWord As Word.Application
    5. Dim oDoc As Word.Document
    6. 'Word starten und Dokumentvorlage öffnen.
    7. oWord = CreateObject("Word.Application")
    8. oWord.Visible = True
    9. oDoc = oWord.Documents.Add(tempfile)
    10. 'Kopfzeile eintragen.
    11. oDoc.Bookmarks.Item("Projekt").Range.Text = txt_Projekt.Text


    Hat von Euch jemand eine Idee wie ich den Fehler beheben kann?

    Grüße
    VriL

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VriL“ ()

    VriL schrieb:

    Komischerweise funktioniert der Code wenn ich das Programm aus Visual Studio starte.


    Baue mal zwischen allen Schritten eine kleine Pause ein.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    In die Details habe ich noch nicht wirklich geschaut aber bin trotzdem ein Stück weiter gekommen.
    Der Fehler tritt auf einem System mit 8GB Ram nicht auf, dort funktioniert es einwandfrei.
    Mein PC hat nur 4GB Ram und es funktioniert nur aus VS2012 heraus.

    Details der Fehlermeldung

    Informationen über das Aufrufen von JIT-Debuggen
    anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

    ************** Ausnahmetext **************
    System.OutOfMemoryException: Eine Instanz der COM-Komponente mit der CLSID {000209FF-0000-0000-C000-000000000046} konnte aufgrund des folgenden Fehlers nicht von der IClassFactory erstellt werden: 8007000e Für diesen Vorgang ist nicht genügend Speicher verfügbar. (Ausnahme von HRESULT: 0x8007000E (E_OUTOFMEMORY)).
    bei Microsoft.VisualBasic.Interaction.CreateObject(String ProgId, String ServerName)
    bei IH1.Button6_Click(Object sender, EventArgs e)
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Geladene Assemblys **************
    mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18444 built by: FX451RTMGDR.
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
    ----------------------------------------
    Programm
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Users/XXX/AppData/Local/Apps/2.0/BO8NQL9T.3LH/Y635LELQ.VAZ/ec3s..tion_f5d77fd0eab359cd_0001.0000_9c6fc569ef494ea4/EC3 Sto%C3%9F.exe.
    ----------------------------------------
    Microsoft.VisualBasic
    Assembly-Version: 10.0.0.0.
    Win32-Version: 11.0.50938.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
    ----------------------------------------
    System
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
    ----------------------------------------
    System.Core
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
    ----------------------------------------
    System.Windows.Forms
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
    ----------------------------------------
    System.Drawing
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
    ----------------------------------------
    System.Runtime.Remoting
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
    ----------------------------------------
    System.Data
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll.
    ----------------------------------------
    System.Xml
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
    ----------------------------------------
    System.Data.DataSetExtensions
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.DataSetExtensions/v4.0_4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll.
    ----------------------------------------
    System.Numerics
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll.
    ----------------------------------------
    Accessibility
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll.
    ----------------------------------------
    System.Data.SqlServerCe
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.8876.1.
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Data.SqlServerCe/4.0.0.0__89845dcd8080cc91/System.Data.SqlServerCe.dll.
    ----------------------------------------
    System.Transactions
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll.
    ----------------------------------------
    System.Configuration
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
    ----------------------------------------
    System.Data.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Data.resources.dll.
    ----------------------------------------
    System.EnterpriseServices
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll.
    ----------------------------------------
    System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
    ----------------------------------------
    mscorlib.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
    ----------------------------------------
    Microsoft.Office.Interop.Word
    Assembly-Version: 15.0.0.0.
    Win32-Version: 15.0.4569.1506.
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.Office.Interop.Word/15.0.0.0__71e9bce111e9429c/Microsoft.Office.Interop.Word.dll.
    ----------------------------------------
    office
    Assembly-Version: 15.0.0.0.
    Win32-Version: 15.0.4569.1506.
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/office/15.0.0.0__71e9bce111e9429c/office.dll.
    ----------------------------------------

    ************** JIT-Debuggen **************
    Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
    Konfigurationsdatei der Anwendung oder des Computers
    (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
    Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

    Zum Beispiel:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Wenn das JIT-Debuggen aktiviert ist, werden alle Ausnahmefehler an den JIT-Debugger gesendet, der auf dem
    Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VriL“ ()

    Wenn du noch die .pdb-Dateien (Programm Debug Database) deines Projektes im den Ausführungspfad beilegst, dann sagt er dir auch noch, in welcher Zeile der Fehler auftritt.
    Ich nehme einmal stark an, der Fehler hat in der Zeile 10 seinen Ursprung. msdn.microsoft.com/de-de/libra…eateobject(v=vs.110).aspx
    vlt. passiert es beim 8GB System nur nicht sofort. Ich könnte mir vorstellen, dass VS dafür sorgt, dass Word richtig geschlossen wird, programmtechnisch dies jedoch nicht richtig gemacht wird.

    Funktioniert es denn beim 4 GB System beim ersten Ausführen(direkt nach dem Systemstart)?

    Und warum eigt. nicht Microsoft.Office.Interop?
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Das komische ist, dass es bis vor kurzem auch auf dem 4GB System funktioniert hat.
    Ich habe lediglich das Programm erweitert was auf den Code der Word Schnittstelle eigentlich keine Auswirkungen hat.
    Bei dem 8GB System habe ich das Ausdrucksprotokoll 10x in Folge ohne Probleme exportiert.

    Ich bin leider (noch) ein VBA Laie aber was meinst du mit Microsoft.Office.Interop?

    Grüße
    VriL
    du scheinst wirklich VBA Laie zu sein, da du kein VBA benutzt :D
    Das ist VB .NET und Office.Interop ist eine Wrapper für Office, welcher dafür gedacht ist, ganz im Gegensatz zum späten binden, was du machst :D
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Ich hab die Bindung von Word mal geändert (auf frühe Bildung) aber der Fehler kommt leider immer noch :(
    Kann ich während meiner Anwendung ungenutzten Arbeitsspeicher freigeben?

    Ich habe bemerkt, dass meine Anwendung laut Tastmanager rund 150MB auslagert.
    Definiere

    VriL schrieb:

    Installation der kompilierten .exe
    Hast Du alle benötigten DLLs mitgeliefert?
    Was passiert (Exceptions)?
    Was passiert nicht?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Es wird alles mitgeliefert was benötigt wird und es funktionierte auch bis vor kurzem auf 3 verschiedenen Systemen.
    Vielleicht habe ich zu viele IF Abfragen im Code des Datenexports nach Word.

    Win7, 4GB Ram
    - Start aus VB2012 heraus funktioniert einwandfrei
    - Start des Makros nach Installation des Programms funktioniert nicht.

    Win7, 8GB Ram
    - Start des Makros nach Installation des Programms funktioniert.

    Quellcode

    1. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
    2. Dim oWord As Word.Application
    3. Dim oDoc As Word.Document
    4. Dim tempfile As String = Path.GetTempFileName()
    5. If opt_Deutsch.Checked = True Then
    6. File.WriteAllBytes(tempfile, My.Resources.protokoll_de)
    7. Else
    8. File.WriteAllBytes(tempfile, My.Resources.protokoll_en)
    9. End If
    10. 'Word starten und Dokumentvorlage öffnen.
    11. oWord = CreateObject("Word.Application")
    12. oWord.Visible = True
    13. oDoc = oWord.Documents.Add(tempfile)
    14. 'Kopfzeile eintragen.
    15. oDoc.Bookmarks.Item("Projekt").Range.Text = txt_Projekt.Text
    16. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VriL“ ()

    Ich würde jetzt erstmal dem einen Rechner mehr Speicher geben und dem anderen weniger, um zu sehen, ob es überhaupt daran liegt. Dann wird der 8GB wohl 64 Bit sein. Der 4GB auch? Wieviel Bit haben die jeweiligen Office Versionen?
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    CreateObject ist Müll. Verwende Interop lieber so, wie es vorgesehen ist, indem du das Application-Objekt einfach mit New instanzierst.
    Außerdem darfst du nicht vergessen oDoc und oWord auch zu schließen. Sonst wird der Speicher ja nie freigegeben...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---