Kurze Frage: wie Outlook-Elemente nach dem Verwenden ordnungsgemäß zu schließen?COMException, wenn zu viele Outlook-Dateien geöffnet wurden
-Code das Problem zu reproduzieren:
Dim olApp As New Microsoft.Office.Interop.Outlook.Application
Dim olSelection As Microsoft.Office.Interop.Outlook.Selection = olApp.ActiveExplorer.Selection
For i As Integer = 1 To olSelection.Count 'Outlook starts counting at 1
Dim olItem As Object = olSelection(i)
Dim sSubject As String = olItem.Subject
olItem.Close(Microsoft.Office.Interop.Outlook.OlInspectorClose.olDiscard)
Runtime.InteropServices.Marshal.ReleaseComObject(olItem)
Next
Erläuterung:
Es ist möglich, Outlook-Elemente zu kopieren (MailItem
, DocumentItem
, PostItem
, im Grunde jedes Element) in meine Bewerbung. Um dies zu erreichen, iteriere ich über die ausgewählten Elemente des aktiven Outlook-Fensters. Es funktioniert gut, aber wenn mehr als 250 (es kann auch eine andere Anzahl je nach Konfiguration) Elemente ausgewählt sind, ein COMExeption
geworfen wird:
Eine nicht behandelte Ausnahme des Typs ‚System.Runtime.InteropServices.COMException‘ aufgetreten in Microsoft.VisualBasic.dll
Zusätzliche Informationen: Ihr Server-Administrator hat die Anzahl der Elemente begrenzt, die Sie gleichzeitig öffnen können. Versuchen Sie, Nachrichten zu schließen, die Sie geöffnet haben, oder entfernen Sie Anhänge und Bilder von nicht gesendeten Nachrichten, die Sie verfassen.
Ich habe versucht, die Elemente zu schließen, wenn ich sie nicht mehr brauche, aber es scheint nicht, dass es irgendetwas tut.
Andere Fragen zu den gleichen Fehler
Ich weiß über this andere Frage, die über den gleichen Fehler, aber ich bereits die Beratung der ersten beiden Antworten und die dritte, akzeptiert (und letzten) folgen Antwort passt nicht in meinen Kontext
Haben Sie [diese Antwort] geprüft (http://stackoverflow.com/questions/36826927/outlook-add-in-crashes-or-your-server-administrator -hat-die-Anzahl-davon-begrenzt? Rq = 1)? Kurz gesagt, nach 'ReleaseComObject()', setze den Verweis auf olItem auf 'Nothing'. –
@SuperPeanut Vielen Dank für die Antwort, aber das Hinzufügen von 'olItem = Nothing' nach' ReleaseComObject' hat nicht geholfen – Breeze