我们的部分应用程序是一个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信息的工具,它可以很好地工作,即我们可以使用它登录到相同的配置文件。
还有其他人看过类似的问题吗?关于如何进一步调试的任何想法?
答案 0 :(得分:1)
您正在加载olmapi32.dll。不要那样做 - 加载msmapi32.dll。