我有以下VB代码与Lotus Notes交互:
Dim objNotesSession As Object = Nothing ' Domino.NotesSession = Nothing
Dim objNotesDatabase As Object = Nothing 'Domino.NotesDatabase = Nothing
Dim objNotesDocument As Object = Nothing 'Domino.NotesDocument = Nothing
Dim objNotesRichTextItem As Object = Nothing 'Domino.NotesRichTextItem = Nothing
Dim objNotesItem As Object = Nothing 'Domino.NotesItem = Nothing
Try
objNotesSession = CreateObject("Lotus.NotesSession") 'New Domino.NotesSession
objNotesSession.Initialize(Password)
objNotesDatabase = objNotesSession.GetDatabase(Server, Database)
objNotesDocument = objNotesDatabase.CreateDocument
'Code here to send email
Finally
If Not objNotesItem Is Nothing Then
objNotesItem = Nothing
End If
If Not objNotesRichTextItem Is Nothing Then
objNotesRichTextItem = Nothing
End If
If Not objNotesDocument Is Nothing Then
objNotesDocument = Nothing
End If
If Not objNotesDatabase Is Nothing Then
objNotesDatabase = Nothing
End If
If Not objNotesSession Is Nothing Then
objNotesSession = Nothing
End If
End Try
此代码在一个方法中被重复调用,用于许多必须发送的电子邮件,这些电子邮件可以运行很长时间(几十封电子邮件),但最终,CreateObject行失败并出现异常:
System.Exception: Cannot create ActiveX component.
对该方法的后续调用失败:
System.OutOfMemoryException: Retrieving the COM class factory for component with CLSID {29131539-2EED-1069-BF5D-00DD011186B7} failed due to the following error: 8007000e.
我觉得在我的Last bock中我应该做的不仅仅是将变量设置为Nothing以便进行适当的清理,但是关于这个的Notes / Domino文档非常不清楚。
请指教?