Laden...

Outlook API Contact move to public folder error

Erstellt von NGZero vor 15 Jahren Letzter Beitrag vor 15 Jahren 4.594 Views
NGZero Themenstarter:in
2 Beiträge seit 2009
vor 15 Jahren
Outlook API Contact move to public folder error

Hi Leute

ich verwende
Outlook API Outlook 2003, Windows Server 2003, MS Active Directory auf Win2003, MS Office 2003, VS 2008 mein useraccount ist dom-admin

Ich habe im Öffentlichen Ordner ein Adressbuch namens "ebms" angelegt.

Der Pfad zu dem Adressbuch ist in einer lokalen Variable gespeichert


private Outlook.MAPIFolder ebmsFolder
"\\Öffentliche Ordner\Alle Öffentlichen Ordner\Adresslisten\ebms"

In einer foreach in der Personendatensätze aus einer Datenbank durchlaufen werden erzeuge ich ein Kontaktitem


Outlook.ContactItem contact = (Outlook.ContactItem)new Outlook.Application().CreateItem(Outlook.OlItemType.olContactItem);

Weise diesem ein paar Daten zu


contact.FirstName = firstname;
                    contact.LastName = lastname;
                    contact.BusinessAddressStreet = address;
                    contact.BusinessAddressCity = city;
                    contact.BusinessAddressState = state;
                    contact.BusinessAddressPostalCode = postal_code;
                    contact.BusinessFaxNumber = main_fax;
                    contact.BusinessTelephoneNumber = pers_phone;
                    contact.CompanyName = company;
                    if (email_address != String.Empty)
                    {
                        contact.Email1Address = email_address;
                        contact.Email1DisplayName = firstname + " " + lastname;
                    }
                    contact.CompanyMainTelephoneNumber = main_phone;
                    contact.NickName = nickname;
                    contact.MobileTelephoneNumber = mobile;
                    switch (prefix)
                    {
                        case "Frau":
                            contact.Gender = Microsoft.Office.Interop.Outlook.OlGender.olFemale;
                            break;
                        case "Herrn":
                            contact.Gender = Microsoft.Office.Interop.Outlook.OlGender.olMale;
                            break;
                        default:
                            contact.Gender = Microsoft.Office.Interop.Outlook.OlGender.olUnspecified;
                            break;
                    }

Und im anschluss speichern.


contact.Save();

Das Kontaktitem liegt nun in meinem lokalen/primären adressbuch.

Wenn ich dieses jetzt in den public folder haben möchte mache ich


contact.Move(ebmsFolder);

Grundsätzlich werden alle Kontakte lokal bei mir im Adressbuch gespeichert.
Allerdings tritt ab einer bestimmten Anzahl von move-befehlen eine exception auf.
Wenn ich das programm direkt danach nochmal starte tritt die exception gleich am anfang auf.
Es sie quasi so aus als könnte der exchange server nur eine bestimmte anzahl an kontakten pro zeit (minuten) speichern.
Wenn ich das ganze über Outlook per drag and drop mache kommt kein fehler sondern alle kontakte werden schön sauber verschoben.
Wenn ich einige Zeit warte und das Programm nochmals ausführe werden wieder viele kontakte gespeichert und irgendwann knallts.

Die Methode saveas liefert das selbe ergebnis wie save und move.

Die Exception:
Ein Client-Vorgang ist fehlgeschlagen.
Microsoft Office Outlook
bei Microsoft.Office.Interop.Outlook._ContactItem.Move(MAPIFolder DestFldr)
bei OutlookAPI.Form1.btnOkay_Click(Object sender, EventArgs e) in C:\Dokumente und Einstellungen\steven.spyrka\Desktop\Develop\projects\OutlookAPI\OutlookAPI\Form1.cs:Zeile 166.

Nicht öffentliche Member
ExceptionMethod: {System.Object Move(Microsoft.Office.Interop.Outlook.MAPIFolder)}
HRESULT -1697628155

Brauche dringend hilfe! Schonmal danke im Voraus 😃

3.728 Beiträge seit 2005
vor 15 Jahren
Redemption

Hallo NGZero,

Öffentliche Ordner wird es in der Exchange Version nach Exchanhge Server 2007 nicht mehr geben. Microsoft hat das Konzept der Öffentlichen Ordner aufgegeben. Es ist deshalb nicht unbedingt sinnvoll, neue Projekte auf öffentlichen Ordnern aufzubauen. Du solltest sowas lieber mit SharePoint machen. Das ist die Zukunft für Zusammenarbeits-Portale etc.

Falls Du aber per Vorgabe an Öffentliche Ordner gebunden bist, kann ich Dir empfehlen, nicht die Outlook-API, sondern Redemption zu verwenden. Das läuft im Welten stabiler. http://www.dimastr.com/redemption/

NGZero Themenstarter:in
2 Beiträge seit 2009
vor 15 Jahren

Hey Rainbird,

vielen Dank für deine Antwort und die Bestätigung das die Outlook Interop nicht gerade sehr stabil ist 😃
Werde mir mal Redemption anschauen aber es kann wirklich gut sein das alles total sinnlos ist wenn später gar keine öffentlichen Ordner Struktur mehr existieren wird.