asp.net網頁Error in loading DLL錯誤處理!
前言
我們有些asp程式,將它們改成.aspx,讓asp升級成asp.NET,只是Run到某支程式去Call COM元件時,卻出現了”Automation error Library not registered.”或是”Error in loading DLL”的錯誤! 但卻沒有說,到底是那個元件沒有註冊!
研究
先看一下ASPX中的Code如下,
<% Dim objAspTest objAspTest = Server.Createobject("VBAspTest.Class1") objAspTest.Test objAspTest = Nothing %>
看錯誤是死在objAspTest.Test Method,而Test裡面的Code如下,
Dim objASP As ObjectContext Set objASP = GetObjectContext Dim rsp As Object Set rsp = objASP.Item("Response") rsp.Write "test" Set rsp = Nothing Set objASP = Nothing End Sub
上面是取得ASP物件,然後直接透過Response物件來將資料Write出去,在ASP時代,這種寫法粉常見!
而VBAspTest的專案中有參考到COM+, ASP,COM+應該是一定會有的,再來就是Check ASP是否存在! 找一下C:\WINDOWS\system32\inetsrv目錄下果然沒有ASP.DLL。
再看果然是沒有裝ASP!
裝上去就可以正常在網頁上顯示出”test”的字了!
結論
原本想說asp改成aspx在執行,很多支程式都沒有問題。而看到錯誤訊息,一直以為是那個元件沒有註冊! 又不知是那個元件,只好去看程式的Source,看了才知道要去檢查是否有沒有裝ASP。還好Source還在!
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^