我有一个ASP.NET 3.5应用程序,我在使用ActiveX控件。当我尝试使用内置的Web服务器从Visual Studio 2008运行网站时,它就像一个魅力。
当我向IIS发布相同的代码时,我收到以下错误:
Retrieving the COM class factory for component with CLSID {ADAACEC8-D9F2-4E05-A5F3-D29E5C9C82F9} failed due to the following error: 80040154.
如何解决此问题?
答案 0 :(得分:1)
错误消息(80040154)中的HRESULT通常表示“未注册的课程”。
尝试重新注册组件:
regsvr32.exe MyActiveX.dll /u
regsvr32.exe MyActiveX.dll
答案 1 :(得分:1)
可能有很多原因。 http://support.microsoft.com/kb/257757列出了部分内容。 除了文章中提到的问题之外,还可能存在一些DLL加载问题,例如COM DLL可能不支持应用程序池的CPU体系结构,或者其中一个依赖项无法找到或无法访问。 / p>
答案 2 :(得分:0)
只是一个猜测。您可以添加web.config文件
<identity impersonate="true" userName="Domain\MyUsername" password="MyPassword"/>
一旦我遇到类似的问题,这就解决了。
答案 3 :(得分:0)
以Kev和盛江蒋晟所说的为基础,听起来COM组件没有正确注册或有一点点问题。
用C ++编写的activex DLL是专门为32位还是64位编译的,还是使用特别是32位或64位的DLL?
如果ActiveX dll可以在x86或x64进程中运行,则可能无法正确注册。
C:\Windows\system32\regsvr32.exe
注册COM组件。 C:\Windows\syswow64\regsvr32.exe