使用 Outlook 对象模型时控制流防护异常

问题描述 投票:0回答:1

我们看到我们的多个客户在将 Outlook 升级到至少两个更新渠道(每月企业 2209 (15629.20258) 和半年度企业:2202 (14931.20806))中的任何 11 月 9 日更新后遇到 Outlook 崩溃。我们仍处于试图确定根本原因的调查阶段,但此时我们有一些数据。

EventViewer
错误是:

错误应用程序名称:OUTLOOK.EXE,版本:16.0.15629.20258,时间戳:0x63603097 故障模块名称:ucrtbase.dll,版本:10.0.19041.789,时间戳:0x2bd748bf

有时是

ntdll.dll
而不是
ucrtbase.dll

我们从一位客户那里得到了一些故障转储,抛出异常的那一行是不同的,但它们也相当无辜。我们在一个地方这样做:

Dim propertyAccessor As Microsoft.Office.Interop.Outlook.PropertyAccessor = mail.PropertyAccessor 

另一个:

Dim mail As Microsoft.Office.Interop.Outlook.MailItem = TryCast(item, Microsoft.Office.Interop.Outlook._MailItem) 

我们使用 Add-in Express,在这两种情况下,调用堆栈显示我们的代码被调用自:

AddinExpress.MSO.2005.dll!AddinExpress.MSO.ADXOutlookAppEvents.DoExplorerSelectionChange(对象资源管理器) AddinExpress.MSO.2005.dll!AddinExpress.MSO.ADXAddinModule.OlExplorerEvents_10_SinkHelper.AddinExpress.MSO.IExplorerEvents_10.SelectionChange()

最后,客户转储文件中的异常是:

OUTLOOK.EXE.7468.dmp 中 0x00007FFF720BC67F (ntdll.dll) 处的未处理异常:间接调用保护检查检测到无效的控制传输。

有谁知道变量赋值或

TryCast
如何触发控制流异常?或者我们可以采取任何步骤来获取有关根本原因的更多信息?

outlook outlook-addin office-interop ntdll controlflowguard
1个回答
0
投票

只是想跟进这个,因为我讨厌 StackOverflow 上没有跟进的问题。 :) 随着时间的推移,问题“消失了”。我假设它已在 Outlook 更新中得到解决 - 但我无法在发行说明中找到任何提及它的地方。我们确实与 Microsoft 支持工程师合作,但这是一线支持,所以没有太多结果。

© www.soinside.com 2019 - 2024. All rights reserved.