使用Microsoft.office.interop.outlook连接到Outlook的稳定性C#表单



我有一个c#表单应用程序女巫我连接到Outlook。

该程序处理传入的邮件,并应在白天稳定运行。问题在于,该程序在观看小时后没有明显的原因变得无反应。

我正在尝试记录异常,但是在生产环境中它没有反应。任何想法如何解决此问题?

该程序具有一些类变量:

Outlook.Application olApp;
Outlook.NameSpace olSession;
Outlook.MAPIFolder olInbox;
Outlook.Items olInboxItems

我连接Outlook:

private void InitOutlook()
{
    if (olApp == null)
        olApp = new Outlook.Application();
    olSession = olApp.GetNamespace("MAPI");
    olInbox = olSession.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
    olInboxItems = olPlanonIn.Items;
    olInboxItems.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(InboxItemAdded);
}

用于处理邮件的EventHandler

private void InboxInItemAdded(object itm)
{
// process my mail
}

我在Interoppoint方案中也有类似的问题。我从来没有找到确切的原因,但可能是开放式com-objects的数量。您是否正确释放了所有对象?

请查看此线程以获取详细信息:如何正确清理Excel Interop对象?

作为最后的度假胜地,您可以实现重新启动过程的观察者线程。不好,但是它可能会"解决"问题。

最新更新