使用COM接口将网站部署到IIS会导致类未注册错误



我有一个ASP。NET网站,需要使用我们开发的COM接口。当我在visualstudio环境中测试网站时,它运行良好。然而,当我将网站部署到IIS时,我收到一个错误,说明

Retrieving the COM class factory for component with CLSID {0716BE95-6372-46B2-B42D-9FC0ED5E0FE3} failed due to the following error: 80040154 Class not registered

我试过一些东西

  1. 确保包含类的dll确实已注册。我确保注册表中的条目与错误声明的无法加载的CLSID匹配
  2. 正在注销dll并使用regsvr32.exe重新注册
  3. 遵循这个问题中的建议。不过,我尝试使用的类不是一个服务,所以我不确定这个问题与我的问题有多相关
  4. 遵循这个问题中的建议。同样,我不确定这有多重要,因为这个问题表明这是一个拒绝访问的错误
  5. 注销并重新注册dll后重新启动计算机
  6. 按照这个答案中的建议,将我项目的平台目标从Any CPU更改为x86。这导致了另一个问题。Could not load file or assembly 'TestWebSimpleMath' or one of its dependencies. An attempt was made to load a program with an incorrect format.,我认为这是一个倒退

我运行的是64位Windows 7旗舰版。

任何帮助都会很棒。我已经试着让它工作了将近9个小时,但没有成功。

原因
您的服务是针对"任何CPU"构建的,这会导致您在使用COM组件的64位上出错。您需要为"x86"构建它。

解决方案
在Visual Studio中,右键单击项目,然后选择属性。单击BUILD选项卡,然后在平台目标下,将任意CPU更改为X86

这个问题可能重复

更新:启用32位应用程序

转到IIS->应用程序池->高级设置->启用32位应用程序

检查此相关问题

最新更新