RPC服务器不可用(vb.net中的外观)

时间:2018-06-20 10:17:31

标签: vb.net outlook interop

我正在开发很少的应用程序。目的是在单击按钮时生成一些电子邮件,并使用此模板打开Outlook“新电子邮件”窗口。我正在使用Outlook interop14。在应用程序启动时,我将创建New Outlook.Application()实例。这将创建outlook.exe进程。

我的生成和打开电子邮件的方法:

Private Sub GenerateEmail(...)
         ...
         'this line throws RPC exception when no outlook.exe process exists
         Dim OutlookEmail As Outlook.MailItem = CType(OutlApp.CreateItem(Outlook.OlItemType.olMailItem), Outlook.MailItem)
         ...
         OutlookEmail.Display()
         ...
End Sub

运行应用程序时,Outlook.exe进程启动。我单击“生成电子邮件”,当我关闭此“新电子邮件”窗口时,Outlook将打开窗口,但它也会终止Outlook.exe进程。这是一个问题,因为第二次我想生成电子邮件时出现错误“ RPC服务器不可用”。问题是如何关闭窗口而不终止Outlook进程。顺便说一句,当我尝试第二次创建一个新的Outlook.Application实例(终止上一个实例之后)时,我也遇到了同样的错误。

1 个答案:

答案 0 :(得分:2)

当Outlook的最后一个可见窗口关闭时,它退出(可能需要一些时间)。为了防止这种情况的发生,请检索MAPIFolder对象(例如,使用Application.Session.GetDefaultFolderFolder(olFolderInbox)),并将通过调用MAPIFolder.GetExplorer()返回的Explorer对象存储在全局/类变量中。