2013-05-10 39 views
1

我試圖部署Server 2008和IIS 7錯誤429在IIS和64位Windows Server 2008

我在應用程序運行良好其他服務器上的32位ASP Web應用程序,但在此服務器上,每次我打開ASP頁調用的一個我的DLL的我得到錯誤429:在DLL ActiveX組件不能創建對象。

我已經嘗試了所有我在網上找到的有關此問題的修復,其中包括: 在應用程序池上啓用32位應用程序。 重新註冊DLL的(使用了RegSvr32)從C:\ WINDOWS \ Syswow64資料夾

當我運行Sysinternals的進程監視器,並比較結果,我發現的主要事情是,運行正常,當我加載在機器上該頁面在dllhost.exe程序和w3wp.exe進程之間存在混合的活動。

在失敗的服務器中,我看到對註冊表的調用沒有在成功的服務器中進行,包括一些我不知道它們是什麼的: HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ VBA \監視器 HKCR \ Wow6432Node \界面{6F255EB7-E73A-4579-B0EC-045FBC00992D} \ InterfaceHelperDisableTypeLib HKCR \ Wow6432Node \界面{6F255EB7-E73A-4579-B0EC-045FBC00992D} \ InterfaceHelperDisableAll HKCR \ Wow6432Node \界面{6F255EB7- E73A-4579-B0EC-045FBC00992D} \ InterfaceHelperUser

而所有這些電話都是使用dllhost.exe進程作出。直到出現錯誤頁面時,w3wp.exe進程纔會再次進入。

我應該指出,這是兩個全新的服務器。我們無法確定它們之間的配置差異。

另外值得一提的是,即使我應該支持這個程序,我要的源代碼的訪問,並且不能在任何形式的與斷點或類似的東西調試模式下執行源。

我強烈懷疑我們試圖在64位服務器上運行這個32位代碼的方式存在某種配置錯誤,但我對如何證明它或者導致如何修復它。

感謝, 比爾

UPDATE: 原來,這個問題是一個需要重新生成一個.tlb文件。一些做C#開發,並允許看源代碼的幾個人在我公司的發現很快那的DLL的運行一個應用程序提供了一種方法來做到這一點。他們掀起一個VB腳本調用它來生成文件,一切都恢復正常。

我對Windows開發知之甚少,無法知道.tlb是什麼或者爲什麼能工作,但故事的寓意是如果你有一個不能在64位上運行的32位web應用程序(可能是任何服務器?)Windows服務器因爲錯誤429,請仔細看看.tlb文件。只是不要問我你應該尋找什麼。

回答

1

有你確信你已經啓用IIS運行32位應用程序?

在你的應用程序池,單擊右鍵,然後在將軍之下,選擇「高級設置」

確保「啓用32位應用程序是‘真’

這通常被設定爲‘假’默認。

這也爲我工作http://support.microsoft.com/kb/177394

enter image description here

+0

是的,我做到了。其實我雙只檢查了它發佈之前,以確保我沒有錯過任何非常簡單的事情。 – 2013-05-10 21:03:41

+0

這也適用於我http://support.microsoft.com/kb/177394 – Darren 2013-05-11 23:08:41

相關問題