【问题标题】:NonComVisibleBaseClass was detected; How do I fix this?检测到 NonComVisibleBaseClass;我该如何解决?
【发布时间】: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 中找到此设置的位置已更改。

标签: asp.net visual-studio pdf-generation membership-provider membershipuser


【解决方案1】:

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

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

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- 找到你的对象代码签名并重建它。

【讨论】:

  • 为什么这和代码签名有关系?
猜你喜欢
  • 1970-01-01
  • 2022-12-13
  • 2021-03-22
  • 2023-01-03
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 2019-05-10
  • 2021-08-20
相关资源
最近更新 更多