2010-01-19 97 views
2

我有一个ASP.NET 3.5应用程序,我使用的是一个ActiveX控件。当我尝试使用内置的Web服务器从Visual Studio 2008运行网站时,它就像一个魅力。当从IIS尝试COM DLL错误

当我发布相同的代码来IIS我得到以下错误:

Retrieving the COM class factory for component with CLSID {ADAACEC8-D9F2-4E05-A5F3-D29E5C9C82F9} failed due to the following error: 80040154. 

我怎样才能解决这个问题?

回答

0

只是一个猜测。你可以添加到你的web.config文件

<identity impersonate="true" userName="Domain\MyUsername" password="MyPassword"/> 

一旦我有类似的问题,这解决了它。

+0

试过这个注册它。仍然不工作Adrian – acadia 2010-01-19 15:25:58

+0

@acadia - 你有同样的错误吗? – 2010-01-19 15:31:21

+0

我得到同样的错误 – acadia 2010-01-19 15:36:37

1

错误消息(80040154)中的HRESULT通常表示'未注册类'。

尝试重新注册所述组件:

regsvr32.exe MyActiveX.dll /u 
regsvr32.exe MyActiveX.dll 
1

可能是由于多种原因。 http://support.microsoft.com/kb/257757列出了其中的一些。 除了本文提到的问题之外,可能会有一些DLL加载问题,例如COM DLL可能不支持应用程序池的CPU体系结构,或者它的某个依赖项无法找到或无法访问。

0

建立在Kev和Sheng Jiang蒋晟所说的基础上,听起来好像COM组件没有正确注册或者存在一点点问题。

activex DLL是用C++编写的/专门针对32位还是64位编译/或者使用特别是32位或64位的DLL?

如果ActiveX DLL可以在任何一个x86或x64进程中运行,那么它可能无法正确注册。

  • 如果IIS正在运行作为一个64位的过程与C:\Windows\system32\regsvr32.exe注册COM组件。
  • 如果IIS在86位/ 32位工作进程运行的组件尝试C:\Windows\syswow64\regsvr32.exe