You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core实例化第三方COM组件报80040154类未注册错误

解决ASP.NET Core中32位COM组件"80040154 Class not registered"错误
  • 匹配项目运行平台
    你的COM组件是32位,ASP.NET Core默认可能跑在64位环境下,导致找不到注册信息:

    1. 右键项目→属性→生成→平台目标选择「x86」
    2. 调试时,去项目属性的调试页,勾选「启用32位应用程序」(针对IIS Express)
  • 用32位regsvr32重新注册
    64位系统里的regsvr32分两个版本,32位DLL必须用SysWOW64下的32位工具注册:
    打开管理员身份的命令提示符,执行:

    C:\Windows\SysWOW64\regsvr32.exe "你的32位DLL完整路径"
    

    不要用System32下的64位regsvr32,否则32位进程读不到注册项

  • 调整IIS托管配置(如果用IIS部署)

    1. 打开IIS管理器,找到你的站点对应的应用程序池
    2. 右键→高级设置→将「启用32位应用程序」设为「True」
    3. 确认应用程序池的.NET CLR版本与COM组件依赖的环境匹配
  • 改用Interop直接实例化
    既然已经添加了COM引用,直接用生成的Interop类,绕开ProgID可能的匹配问题:

    using ThirdPartyServer;
    
    Widget myWidget = new Widget();
    

    若仍报错,检查Interop程序集的平台:右键依赖项里的Interop.ThirdPartyServer→属性,确认「平台目标」为x86

  • 先验证组件本身可用性
    新建一个32位的.NET Framework控制台项目,添加相同的COM引用并实例化类。如果能正常运行,说明问题出在ASP.NET Core的宿主配置上,而非组件本身

内容的提问来源于stack exchange,提问作者SiBrit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:20:22