当基于 NotesDXLExporter 类的对象在导出 389 条记录(较小的文档)后无法导出第 390 条记录(一个大文档)时,Lotus Notes 中包含的 Domino 互操作 API 会导致 .NET 中出现内存不足异常。
这是一个代码片段:
我初始化 NotesDXLExporter 类。
NotesDXLExporter dxl1 = null;
然后我配置 NotesDXLExported 对象,如下所示:
dxl1 = notesSession.CreateDXLExporter(); dxl1.ExitOnFirstFatalError = false; dxl1.ConvertNotesbitmapsToGIF = true; dxl1.OutputDOCTYPE = false;
然后,我在使用 dxl1 类读取文档时执行如下所示的 for 循环(发生异常的行如下所示)。
NotesView vincr = database.GetView(@"(AllIssuesView)"); //从 NSF 文件中查看 for (int i = 1; i < vincr.EntryCount; i++) { try {
vincrdoc = vincr.GetNthDocument(i); System.IO.File.WriteAllText(@"C:\Temp\" + i + @".txt", dxl1.Export(vincrdoc)); //OUT OF MEMORY EXCEPTION HAPPENS HERE WHEN READING A BIG DOCUMENT. } catch(Exception ex) { Console.WriteLine(ex); }
我曾尝试使用不同版本的 Interop domino dll,但没有成功。
据我了解,我看到了一个 API 问题,但我不知道我是否遗漏了什么?
你能解释一下吗?
提前致谢。
副部