我已经构建了一个ASP.NET Web应用程序(包含Silverlight 4应用程序),它使用了几个COM dll。 dll已注册(通过在注册表中查找CLSID并查看CLSID中的类来验证),并且它们位于对所有用户具有完全控制权的目录中。
当我使用localhost方法运行VS调试时,一切运行正常,但是当我将其更改为使用IIS主机时,它会抛出错误:
Retrieving the COM class factory for component with CLSID {006CA725-8B67-11D4-A067-FFF276E93345} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
我使用的是Win7 64位,并且我已经为IIS中的站点启用了appilcation池以允许32位应用程序。
不知道还有什么可以尝试。 dll是由第三方制造商提供给我们来计算他们的产品性能(我们需要帮助计算我们的产品性能),因此我无法在.NET中重建它们(并且制造商没有改变它们,因为他们会必须经过重新认证过程)。
谢谢,克里斯
您正尝试在64位应用程序中嵌入32位ocx。
如果您强制在64位操作系统上作为32位应用程序运行,您的应用程序可能会正常运行...项目属性 - >构建 - >平台目标= x86