登录MAPI配置文件时AccessViolationException

时间:2016-11-08 20:07:58

标签: outlook ms-office mapi outlook-2016

我们的部分应用程序是一个Windows进程,它登录到MAPI并在后台索引电子邮件。它适用于许多不同版本的Outlook,并且几天前曾用于Outlook 2016.现在,它在登录MAPI配置文件时会出现AccessViolationException。

这是异常消息:

Exception thrown at 0x00007FFDA7716BB9 (Mso20win32client.dll) in Tray.exe: 0xC0000005: Access violation writing location 0x0000000000000000.

我们还未能弄清楚为什么要尝试访问该位置。据我们所知,所有论据都是有效的。

调用堆栈看起来像这样(我们没有Outlook dll的符号):

 Mso20win32client.dll!00007ffda7716bb9()    Unknown
 OLMAPI32.DLL!00007ffda48e325e()    Unknown
 OLMAPI32.DLL!00007ffda48274e1()    Unknown
 OLMAPI32.DLL!00007ffda4827466()    Unknown
 OLMAPI32.DLL!00007ffda4827408()    Unknown
 OLMAPI32.DLL!00007ffda4827317()    Unknown
 CONTAB32.DLL!00007ffdee6a14f6()    Unknown
 OLMAPI32.DLL!00007ffda482670c()    Unknown
 OLMAPI32.DLL!00007ffda48261cd()    Unknown
 OLMAPI32.DLL!00007ffda48253c6()    Unknown
 OLMAPI32.DLL!00007ffda481653c()    Unknown
 OLMAPI32.DLL!00007ffda4815dc8()    Unknown
 MSMAPI32.DLL!00007ffdef225ee6()    Unknown
 [External Code] 

有一些帖子谈论类似的问题,其中一个特别相似的是this one on Experts Exchange,但我们仍然无法确定根本原因或修复。

有趣的是,为缩小问题而创建的峰值(测试程序)不会出现问题。此外,MFCMAPI是一种可视化MAPI信息的工具,它可以很好地工作,即我们可以使用它登录到相同的配置文件。

还有其他人看过类似的问题吗?关于如何进一步调试的任何想法?

1 个答案:

答案 0 :(得分:1)

您正在加载olmapi32.dll。不要那样做 - 加载msmapi32.dll。