2013-02-14 50 views
1

我將一個經典ASP站點從Windows 2000服務器移到Windows 2008(包括dev和prod)。我有一個.NET 1.1中創建的.dll文件。在位於此securityUtility.asp中的JScript中創建的函數使用dll創建ActiveXobject時發生此錯誤。線看起來如下:從COM .dll獲取錯誤「80070002」

功能getProfileFromLdap(用戶,PW){

變種ACLASS,aProfile

ACLASS =新的ActiveXObject( 「com.co.comp.security.ldap.LDAPLogin」 ); ... }

錯誤正在發生的是: 錯誤 '80070002' E:\網站\ WWW-COMPANYSITE-COM \ SITE \ BINS ../../ siteInc/securityUtility.asp,線850

我已經運行下面的命令在註冊表中註冊DLL:

「C:\ WINDOWS \ Microsoft.NET \框架\ V1.1.4322 \ RegAsm」 coSecurity.dll /tlb:coSecurity.tlb

我不知道是否值得一提,但是在某一點上,網站在開發中完美運行當我試圖將網站遷移到生產環境時發生錯誤。很久以前我就把網站移到了新的開發者服務器(Windows 2008)。當我將它移動到生產環境時,我已經做了筆記,我知道我採取了哪些步驟。我想也許我忘了記錄一步,試圖追溯我所做的,我卸載了.dll並完成了我記錄的步驟。它現在已經在開發中被破解,但在某個時刻它正在工作。

我不確定的另一件事值得一提的是這個網站是新的開發服務器上的第一個網站。 .NET 1.1是在任何其他框架之前安裝的。事實之後安裝了4.0和2.0。在prod服務器4.0上安裝了第一個,然後是1.1。不知道這是否重要。

  • 當開發網站工作,我已確認的項目均在 註冊表他們比較舊的生產和新開發 服務器和新的生產

  • 在舊的生產服務器有在GAC中沒有任何內容

  • coSecurity.dll與securityUtility.asp
    (代碼所屬的頁面)位於同一個文件中。

  • 的應用程序池已經「使32位應用程序」爲真 兩個新環境的

  • 「每個人」被授予該.dll充分的權利

我不確定我錯過了什麼!

回答

0

一般而言HRESULT 80070002表示「找不到文件」。

我的猜測是你錯過了依賴。嘗試使用Dependency Walker來查看是否有任何應該包含的依賴關係。

另請參閱this thread瞭解有關手動註冊COM服務器的一些提示。

1

這是我落得這樣做對於那些一直在敲打他們的頭靠在牆上,好像我是:

  • 打開命令提示符以管理員身份
  • 導航到該DLL保存
  • 註銷使用DLL 「C:\ WINDOWS \ Microsoft.NET \框架\ V1.1.4322 \ RegAsm」/ U coSecurity.dll
  • 使用 「重新註冊的dll C:\ WINDOWS \ Microsoft.NET \框架\ V1.1.4322 \ RegAsm」 coSecurity.dll /代碼庫
  • ,你會得到一個regasm警告,但也應該得到消息‘類型 成功註冊’

後,我不再收到錯誤!