Engültiges Löschen von Kontakten über VB.Net

06/11/2008 - 16:57 von Bernhard Sollfrank | Report spam
Hallo!

Wenn ich über das Outlook Objektmodel einen Ordner voller Kontakte (ca. 300)
lösche, dann steigt mir der Exchange Server aus, weil die maximale Anzahl an
MAPI-Objekten (500) erreicht wird ("Ein Client Vorgang ist fehlgeschlagen").

Habe nun herausgefunden, dass ein contactitem.delete dazu führt, dass das
Objekt nur in den "gelöschte Objekte" Ordner verschoben wird, wofür
anscheinend ein weiteres Objekt erzeugt wird. Dies würde auch erklàren, warum
er bereits bei 250 Kontakten aussteigt.

Die Objekte nach dem Löschen auf Nothing zu setzen, hilft nix, nichtmal das
verlassen und neu initialisieren der Application führt zu dem gewünschten
Ergebnis, da die Outlook.exe weiterhin existent bleibt.

Wie kann ich ein ContactItem endgültig (also nicht über den "Papierkorb")
löschen?

Oder weiss evtl. jemand, wie ich eine grosse Anzahl an Items löschen kann,
ohne dass mir die MAPI-Objekte überlaufen?

Vielen Dank für jeden Vorschlag!

Hier noch der Code mit allen Versuchen, die Objekte und Sessions zu schließen:


Dim counter As Integer = 0

Dim myItem As Microsoft.Office.Interop.Outlook.ContactItem

While myFolder.Items.Count > 1

If counter < 100 Then

myItem = myFolder.Items.GetLast()
'myFolder.Items.Item(myFolder.Items.Count - 1).delete()
myItem.Delete()
myItem = Nothing

Else

olNs.Logoff()
olNs.Application.Quit()
olNs.Session.Logoff()

olApp.Session.Logoff()
olApp.Quit()
olApp.Application.Quit()
olApp.Session.Application.Quit()

olApp = Nothing
olNs = Nothing

olApp = New Microsoft.Office.Interop.Outlook.Application
olNs = olApp.GetNamespace("MAPI")
olNs.Logon()

counter = 0

End If

counter = counter + 1

End While
 

Lesen sie die antworten

#1 Bernhard Sollfrank
06/11/2008 - 17:00 | Warnen spam
P.S.: Es handelt sich um Kontakte in einem öffentlichen Ordner...

Ähnliche fragen