コードで問題が発生しました。ソースから(今のアクセスデータベースで)カスタムフォームにデータをインポートしようとしていますが、上記のエラーが発生します。Outlookでエラーが返されました:メッセージングインターフェイスから不明なエラーが返されました
ソースデータベース内でVBscriptを使用すると、すべての連絡先が正しくインポートされます。 私はPSTを修復するときにもこのエラーが発生します。 私は450ミリ秒の遅延を追加します。エラーも発生しますが、後でエラーが発生します。 Outlookを開いたり閉じたりしても問題ありません。
私はそれが前に400/500に連絡することになる遅延を追加したとき、私はループのコードが、それは、100〜200接触した後、例外がスローされますと、言ったように私は次のような方法
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;
}
}
を使用しています失敗する。
このコードは、この特定のフォーム用の一般的なインポートツール用であるため、インポート列のソース列名をインポートコードのフォームフィールドにハードコーディングする必要はありません。
何か助けていただければ幸いです。
:
は、ここで私は、通常のCOMオブジェクトを使用する方法は?連絡先をどのようにループするのですか? –
"メッセージングインターフェイスから不明なエラーが返されました。問題が解決しない場合は、Outlookを再起動してください"というメッセージを除いて、ほとんど例外はありません。私は完全なコードを含むように投稿を編集します – Ronald