COM类错误80040154

本文专门针对错误代码

80040154 。 如果您没有看到此错误代码,则以下信息可能不适用于您。 如果看到80040150错误,则可能还应该通读这篇文章,但是很有可能您的注册表被在操作系统中注册的COM组件的多个版本弄乱了。

在网上查找有关此错误的信息可能会令人沮丧且乏味,因为该错误代码含糊不清,并且Microsoft对此没有官方解释。

根据我的经验,我发现此错误是由以下一种或多种原因引起的:

  • 权限不足,无法应用于COM组件,以允许运行该应用程序的用户访问/使用它
  • 使用不正确的regsvr32工具针对该组件所使用的操作系统平台注册了该组件
  • Visual Studio项目构建设置针对的平台不正确

第一点是导致80040154错误的最常见原因。 您必须确保运行该应用程序的用户具有足够的权限来读取/执行该组件。 过去,所有32位COM组件都必须放置在

C:\Windows\SysWoW64文件夹,以便64位操作系统可以正确运行该组件。 如果不正确地应用此文件夹及其中的组件的权限,则可能会损害您的操作系统。 例如,如果您正在开发使用COM组件的Web应用程序,则绝对不要授予Internet用户帐户对此文件夹的权限! 现在,您可以将32位COM组件从SysWoW64文件夹中移到另一个位置,并使用适当的工具来告诉操作系统如何执行它们。

这使我想起第二点,如果您的应用程序要在64位操作系统上执行,而您的COM组件是32位,则需要确保使用正确的regsvr32工具来注册您的COM组件。

在64位Windows操作系统上,此工具有2个版本。

  • C:\Windows\system32文件夹中存在一个。 这是用于注册COM组件的默认工具,可以完美地在32位操作系统上注册32位COM组件。 但是,在64位操作系统上,它意味着要注册64位组件。
  • 在64位操作系统上, C:\Windows\SysWoW64文件夹中存在此工具的另一个版本。 此版本以允许它们在64位操作系统上正常工作的方式注册32位组件。

使用正确的工具在使用该操作系统的操作系统上正确注册您的COM组件很重要。

第三点很重要,因为到目前为止,即使您没有正确设置所有内容,如果您的应用程序未指定它需要在32位平台上运行,您仍然会在64位操作系统上收到此错误。 如果项目的构建设置的目标是“ Any CPU”或“ x64”,则在64位操作系统上运行应用程序时会出现此错误。 将此设置更改为目标“ x86”,以便告诉操作系统在运行应用程序时需要使用32位平台。

因此,如果您现在遇到此错误,我建议您:

  • 使用regsvr32工具卸载组件
  • 确保该组件位于您可以对其应用适当权限的文件夹中,以便运行该应用程序的用户可以读取/执行该组件
  • 对组件以及包含组件的文件夹(如果需要)应用适当的权限
  • 使用正确的regsvr32工具在操作系统中注册组件
  • 重新引用项目中的组件
  • 配置项目的构建设置以针对x86平台
  • 编译并运行应用程序

这应该可以解决问题。

如果您看到

80040150错误,然后您的注册表混乱了。 使用regsvr32工具在操作系统上存在的每个位置注销组件,重新启动系统,然后使用适当的regsvr32工具注册您感兴趣的一个组件。如果仍然出现错误,请注销该组件并然后使用regedit工具搜索您的注册表,以删除所有未正确清理的条目。 完成此操作后,再试一次。

请注意,如果您的COM对象确实是一个真正的COM组件(不是使用.NET代码开发的),那么重排将不起作用。 我知道很多人尝试使用它,但是它不适用于这些COM组件。

有关运行ASP.NET应用程序的说明:

如果您的Web应用程序使用32位COM组件,并且您的Web服务器是64位操作系统,则需要确保您的网站在32位应用程序池下运行,否则您将看到“格式错误的图片”错误。 对于IIS的每个版本,设置应用程序池都不同,因此请研究此主题,以便您的应用程序可以正常运行。

我知道这些错误可能令人沮丧,并且似乎无法修复它们。 我真的希望这篇文章对您有所帮助!

-弗林尼

From: https://bytes.com/topic/net/insights/952785-com-class-error-80040154-a

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值