2010-01-19 52 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