2013-05-30 57 views
2

我有一個需要使用我們開發的COM接口的ASP.NET網站。當我在Visual Studio環境中測試網站時,它工作正常。然而,當我去部署站點到IIS,我收到一個錯誤,說明使用COM接口將網站部署到IIS導致類未註冊錯誤

Retrieving the COM class factory for component with CLSID {0716BE95-6372-46B2-B42D-9FC0ED5E0FE3} failed due to the following error: 80040154 Class not registered

我試過幾件事情

  1. 確保包含類的dll其實註冊的。我確保註冊表中的條目匹配錯誤聲明它未能加載的CLSID。
  2. 取消註冊該DLL並使用regsvr32.exe重新註冊它
  3. 按照this question的建議。我嘗試使用的課程不是服務,所以我不確定這個問題與我的問題有多相關。
  4. 按照this question的建議。再次,我不確定自從那個問題表明它是一個拒絕訪問的錯誤以來有多相關。
  5. 重新啓動我的機器註銷並重新註冊DLL
  6. Any CPU改變我的項目的平臺目標x86this answer建議後。這會導致另一個問題。 Could not load file or assembly 'TestWebSimpleMath' or one of its dependencies. An attempt was made to load a program with an incorrect format.我認爲這是一個倒退。

我正在運行Windows 7旗艦版64位。

任何幫助將是偉大的。我一直試圖讓這個工作近9個小時,沒有運氣。

回答

5

原因
您的服務已建立反對「任何CPU」你在哪裏使用COM組件導致你在64位的錯誤。你需要爲'x86'構建它。

解決方案
在Visual Studio中,右鍵單擊PROJECT然後選擇性能。點擊BUILD標籤,然後在平臺目標更改任何CPUX86

可能重複此question

更新:啓用32位應用程序

進入IIS - >應用程序池 - >高級設置 - >啓用32位應用程序

檢查此相關question

+0

正如我在說我的問題我已經嘗試過,導致錯誤'無法加載文件或程序集'TestWebSimpleMath'或它的一個依賴項。試圖加載一個格式不正確的程序。「如果可行,你可以試試我的更新答案嗎?」 – nick

+0

。 – bot

+0

好吧,現在我得到訪問被拒絕的錯誤,這是更接近:D我會按照這個問題的建議(http://stackoverflow.com/questions/14019401/80070005-access-is-denied-when- asp-net-website-with-crystal-report-is-deployed-o?lq = 1),希望能夠解決所有問題。謝謝你的幫助。我會讓你知道它是怎麼回事 – nick