2012-07-06 92 views
4

我已閱讀所有類似問題,但未找到我確切答案的問題。我嘗試了所有類似的建議。我不得不從Windows Server 2003環境遷移到運行IIS 7.5的Windows Server 2008 R2環境。我有一個在32位DLL中調用COM對象的Web應用程序。 COM對象是從VB6創建的。這是我迄今爲止所做的:如何在Windows 2008 R2上註冊32位.DLL COM +應用程序

  1. 我在我的IIS應用程序池上啓用了32位。
  2. 我已經註冊了.DLL,它的依賴.DLL使用C:/windows/syswow64/regsvr32.exe - 註冊成功。
  3. 我已經驗證.DLL和它的組成部分使用的是C在註冊表中找到:我已經創建了組件服務COM +的對象/窗/ SysWow64資料/註冊表編輯器
  4. (使用SysWow64資料/ DCOMCNFG),並開始他們。
  5. 我已經創建了一個角色「用戶」,並添加了「Everyone」組。

當我運行我的應用程序的網頁掛起。我可以在COM對象的日誌文件中找到以下錯誤:

ActiveX component can't create object Error: [429]: CDataAdministrator::OpenCatalog

我比較了新服務器和舊服務器之間的設置。我注意到的一件事是,在舊服務器上,DataAdministrator對象(DataAdministrator.CDataAdministrator)在DCOM Config的擴展下列出,但在新服務器上不是。我似乎無法讓它出現在那裏。

我在事件歷史記錄或IIS網絡日誌中沒有錯誤。對我來說,似乎一切都已註冊,但它不會運行。我可以在我指定的帳戶下運行的任務管理器中看到一個DLLHOST.EXE * 32。

我在這裏虧本....幫忙嗎?

+0

從模糊的內存中,丟失MSVBM50.DLL通過運行MSVBM50.EXE修復。不知道這是否是你的問題。我抓住了我的腦袋十分鐘,試圖讓一些VB6的東西運行,放棄並重寫它在C#中,比試圖通過這個批次更容易。 – 2012-07-06 21:39:15

+0

只是爲了好奇,因爲沒有多少人似乎使用COM + ......你是否爲你的問題找到了解決方案? – 2012-08-10 10:44:27

+0

以及我目前有同樣的問題,但我得到的類沒有註冊.. ...有沒有人解決了這個? – 2012-10-18 12:13:45

回答

0

您是否僅編譯了x86應用程序?

+0

在VB6中沒有任何其他選項,是嗎? – 2012-07-06 21:36:36

+0

我在說的是Web應用程序而不是(VB6)COM DLL。 – 2012-07-07 16:44:16

+0

Web應用程序主要是經典的.ASP調用SQL Server數據庫。最後一個.ASP調用COM DLL對象。該Web應用程序在啓用了32位的應用程序池中運行。我還會如何強制IIS 7.5編譯32位的ASP? – user1507674 2012-07-09 19:47:02

相關問題