2011-01-05 310 views
3

我試圖將一個分類ASP站點移動到64位Windows 2008服務器。我現在遇到的問題(如果/當我經歷這個問題時可能有其他問題)是該站點依賴於舊的VB6 DLL(32位),並且我得到臭名昭着的「ActiveX組件無法創建對象」錯誤。64位操作系統上的32位ActiveX DLL的問題

我試圖通過試圖讓它與一個簡單的VBS腳本文件一起工作,從而將IIS7排除在等式之外,這就給了我同樣的想法。

這個DLL唯一的依賴是ADO 2.6,而且從我讀過的內容來看,這並不是Windows 2008所需要的,因爲包含了WDAC並已經取代了MDAC。

我用下面的註冊我的組件:

C:\Windows\SysWOW64\regsvr32.exe "C:\MyVb6Com.dll" 

我查了註冊表,一切似乎正確那裏。我的VBS文件也很簡單:

CreateObject("MyVb6Com.Session") 

並立即引發錯誤:

ActiveX component can't create object: 'MyVb6Com.Session' 

在IIS結束,我已經試圖改變應用程序池的設置,以使32位應用程序,這也沒有幫助(當然,如果我不能使用WBS文件工作,這兩種方式都沒有什麼不同)。

任何幫助將非常感激。

+1

確保您使用32位WScript來測試您的VB腳本。雙擊它將使用64位。 – vcsjones 2011-01-05 02:52:39

+0

謝謝,vcsjones。我實際上使用的是64位版本,一旦我切換到32位,那就工作了。於是我再次嘗試了網站,奇怪的是它也起作用了。所以當我嘗試讓VB腳本運行時,我做了一些事情,解決了IIS問題。太糟糕了,我不知道它是什麼。謝謝你的幫助。如果你不在乎,把這個作爲答案,我會標記,因爲它有助於解決我的情況。 – 2011-01-05 03:05:42

+0

呵呵。那麼,只要它工作:-) – vcsjones 2011-01-05 03:08:26

回答

2

確保您使用32位WScript來測試您的VB腳本。雙擊它將使用64位 - 這將有助於診斷您的問題。

+0

如上所述,這是讓我得到的VB腳本工作。不幸的是,一旦我嘗試了這個網站,我的問題就已經被我採取的一個或多個步驟所修復,因此我不確定根本問題/解決方案是什麼。如果我知道了,我會更新原文。再次感謝vcsjones,感謝您的幫助。 – 2011-01-05 18:53:47

2

在驅動IIS7網站的應用程序池中,選擇高級設置並在頂部附近設置啓用32位應用程序爲True。

64位機器上的IIS7將不會使用32位DLL,除非設置此設置。

相關問題