注释
本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。
当 failedQI 运行时代表运行时可调用包装器(RCW)对 COM 接口指针进行调用 QueryInterface 并且 QueryInterface 调用失败时,将激活托管调试助手(MDA)。
症状
RCW 上的强制转换失败,或者从 RCW 调用 COM 意外失败。
原因
调用来自错误的上下文。
注册的代理在调用失败
QueryInterface,因为调用尝试在错误的上下文中。OLE 拥有的代理返回了失败的 HRESULT。
解决方案
请参阅有关 COM 规则的 MSDN 文档。
对运行时的影响
QueryInterface如果调用失败,则会切换上下文,QueryInterface并再次尝试调用以查看上下文是否出错。
输出
接口的托管名称、接口的 GUID 和失败的 HRESULT。
配置
<mdaConfig>
<assistants>
<failedQI/>
</assistants>
</mdaConfig>