Ich habe einige Probleme mit einem Stück Code, ich versuche, Daten von einer Quelle (zu diesem Zeitpunkt eine Access-Datenbank) in ein benutzerdefiniertes Formular zu importieren, aber ich behalte den obigen Fehler bekommen.Outlook gibt Fehler zurück: Die Nachrichtenschnittstelle hat einen unbekannten Fehler zurückgegeben
Wenn ich ein VBscript innerhalb der Quelldatenbank verwende, werden alle Kontakte korrekt importiert. Wenn ich die PST repariere, gibt es immer noch diesen Fehler. Wenn ich eine Verzögerung von 450 ms hinzufüge. der Fehler tritt auch später im Prozess auf. Es ist nicht wichtig, Outlook geöffnet oder geschlossen zu haben.
Ich verwende die folgende Methode
string[] arrFolders = strFolders.Split('\\');
Outlook.Application app = null;
Outlook.MAPIFolder folder = null;
try {
app = new Outlook.Application();
folder = app.GetNamespace("MAPI").Folders[arrFolders[0]];
} catch (Exception ex) {
writeLogLine("Error creating Outlook instance: " + ex.Message);
MessageBox.Show("Error creating Outlook instance\r\n" + ex.Message);
intErrorCount++;
blnHasErrors = true;
blnAbort = true;
}
try {
for (int i = 1; i < arrFolders.Length; i++) {
folder = folder.Folders[arrFolders[i]];
}
} catch (Exception ex) {
writeLogLine("Error navigating to DRM folder: " + ex.Message);
MessageBox.Show("Error navigating to DRM folder\r\n" + ex.Message);
intErrorCount++;
blnHasErrors = true;
blnAbort = true;
}
setProgressbarMaximum(dtResults.Rows.Count);
setProgressbarMode(ProgressBarStyle.Continuous);
//int intRowCount = 0;
foreach (DataRow drItem in dtResults.Rows) {
if (strDRMType == "Contact") {
try {
Outlook.ContactItem x = (Outlook.ContactItem)folder.Items.Add("IPM.Contact." + strFormName);
for (int i = 0; i < arrMappings.GetLength(0); i++) {
if (arrMappings[i, 1] != null && drItem[arrMappings[i, 0]].ToString() != "") {
x.UserProperties[arrMappings[i, 1]].Value = drItem[arrMappings[i, 0]].ToString();
}
}
x.Save();
} catch (Exception ex) {
writeLogLine("Error importing contact: " + ex.Message);
intErrorCount++;
blnHasErrors = true;
}
}
wie gesagt, wenn ich Schleife der Code es Ausnahmen nach 100 bis 200 Kontakte werfen, wenn ich eine Verzögerung hinzufügen, wird es kontaktieren 400/500 bevor Versagen.
Dieser Code soll für ein generisches Importwerkzeug für dieses spezifische Formular sein, so dass die Quellspaltennamen nicht in die Formularfelder im Importcode festgeschrieben werden müssen.
Jede Hilfe wird geschätzt.
welche Ausnahmen? Wie schleifen Sie die Kontakte? –
Die Ausnahme ist meistens leer mit Ausnahme der Meldung "Die Messaging-Schnittstelle hat einen unbekannten Fehler zurückgegeben. Wenn das Problem weiterhin besteht, starten Sie Outlook neu." Ich werde den Beitrag bearbeiten, um den vollständigen Code – Ronald