检测到 NonComVisibleBaseClass;我该如何解决?

Posted

技术标签:

【中文标题】检测到 NonComVisibleBaseClass;我该如何解决?【英文标题】:NonComVisibleBaseClass was detected; How do I fix this? 【发布时间】:2010-11-06 04:34:52 【问题描述】:

我的类派生自 System.Web.Security.MembershipUser 提交表单时出现此错误。弹出表单使用 ASPPDF,并且在实现自定义 MembershipProvider 好东西之前应用程序没有这个问题。请注意,这只是一个调试错误。当我不调试时,它似乎工作。有谁知道我该如何解决这个问题?

检测到 NonComVisibleBaseClass 消息:进行了 QueryInterface 调用,请求 COM 可见托管类“XyAmpUser”的默认 IDispatch 接口。但是,由于此类没有明确的默认接口并且派生自非 COM 可见类“System.Web.Security.MembershipUser”,因此 QueryInterface 调用将失败。这样做是为了防止非 COM 可见的基类受到 COM 版本控制规则的约束。

谢谢, ~ck 在圣地亚哥

【问题讨论】:

注意: 这不仅发生在 asp.net 和 pdf 生成中,我在使用 .NET Windows 窗体和实体框架的项目中也遇到了这个错误。因此,我在 Jeremy 的回答中留下了评论,因为在 Visual Studio 2019 中找到此设置的位置已更改。 【参考方案1】:

我最近在与您完全不相关的场景中发现了此错误。

    导航到调试->异常... 展开“托管调试助手” 取消选中 NonComVisibleBaseClass Thrown 选项。 点击[确定]

Here is more information, which may help.

只是为了保持最新状态:

在 Visual Studio 2019 中:调试菜单,Windows --> 异常设置,打开异常设置窗口。在那里展开“托管调试助手”,最后取消选中 NonComVisibleBaseClass

【讨论】:

复制链接线程中的答案以防它消失:“1. 导航到 Debug->Exceptions... 2. 展开“Managed Debugging Assistants” 3. 取消选中 NonComVisibleBaseClass Thrown 选项。 4.点击【确定】” 先在 Visual Studio 2019 中找不到。这里是:Debug菜单,Windows --> Exception settings,打开Exception settings窗口。展开 "Managed Debugging Assistants" 最后取消选中 NonComVisibleBaseClass【参考方案2】:

这告诉你: 您的项目包含一些基于 COM 的对象,这些对象未使用公共使用密钥进行签名。

这种情况有两种解决方案:

1- 从调试器设置中取消选中 NonVisibleCome 选项

2- 找到你的对象代码签名并重建它。

【讨论】:

为什么这和代码签名有关系?

以上是关于检测到 NonComVisibleBaseClass;我该如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

未检测到 SceneKit 碰撞检测

nmap可以检测到哪些操作系统

未检测到 UIToolBar 上 UIToolBar 上的模态视图中的 UIButton 触摸未检测到

如何判断是不是被检测到使用模拟器了

简单的斑点检测器不会检测到大斑点

TensorFlow 对象检测 API 中未检测到任何内容