failedQI MDA

注意

本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。

当运行时代表运行时可调用包装器 (RCW) 在 COM 接口指针上调用 QueryInterfaceQueryInterface 调用失败时,将激活 failedQI 托管调试助手 (MDA)。

症状

对 RCW 的强制转换失败,或从 RCW 调用 COM 意外失败。

原因

  • 从错误的上下文进行调用。

  • 注册的代理将无法进行 QueryInterface 调用,因为尝试在错误的上下文中进行调用。

  • OLE 拥有的代理返回失败 HRESULT。

解决方法

请参阅 MSDN 文档的 COM 规则部分。

对运行时的影响

如果 QueryInterface 调用失败,将切换上下文并再次尝试调用QueryInterface,以确定是否因上下文错误而引起。

输出

接口的托管名称、接口的 GUID 和失败的 HRESULT。

Configuration

<mdaConfig>
  <assistants>
    <failedQI/>
  </assistants>
</mdaConfig>

请参阅