Outlook ItemAdd事件无法持续生效问题排查与解决咨询
问题:Outlook ItemAdd事件监听程序运行几天后失效
我开发了一个小型C#程序,通过ItemAdd事件监听Outlook,但程序运行几天后便会失效(例如周一启动,周三或周四出现故障),必须重启才能恢复。这应该不是内存问题,我配备了32G内存。运行环境为Win10 21H1、Outlook 2016、.NET Framework 4.7.2。
原始实现代码
public partial class Form2 : Form { private NameSpace _ns; private readonly ApplicationClass _outlook = new ApplicationClass(); private readonly StringProcessor _processor = new StringProcessor(); private Items _items; public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { try { Main(); } catch (System.Exception ex) { } } private void Main() { try { _ns = _outlook.GetNamespace("MAPI"); MAPIFolder myFolder; if (Environment.UserName == XmlService.UserName) { var box = XmlService.Inbox; myFolder = GetFolderItem(box); } else { myFolder = _ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox); } if (myFolder != null) { _items = myFolder.Items; _items.ItemAdd += Items_ItemAdd; } else { Loger.PrintLog("Can not get folder"); } } catch (System.Exception e) { Loger.PrintLog(e.Message); } } private void Items_ItemAdd(object item) {} }
问题解决
放弃了COM方式处理,改用MailKit后问题得到解决,流程清晰顺畅。
内容的提问来源于stack exchange,提问作者Christopher Leung
相关产品推荐
相关产品推荐

