从IIS尝试COM DLL错误

时间:2010-01-19 15:13:23

标签: asp.net com iis-6

我有一个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. 

如何解决此问题?

4 个答案:

答案 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进程中运行,则可能无法正确注册。

  • 如果IIS作为x64进程运行,则使用C:\Windows\system32\regsvr32.exe注册COM组件。
  • 如果IIS正在运行x86 / 32bit工作进程中的组件,请尝试使用C:\Windows\syswow64\regsvr32.exe
  • 进行注册