asp.net網頁Error in loading DLL錯誤處理!

asp.net網頁Error in loading DLL錯誤處理!

前言

我們有些asp程式,將它們改成.aspx,讓asp升級成asp.NET,只是Run到某支程式去Call COM元件時,卻出現了”Automation error Library not registered.”或是”Error in loading DLL”的錯誤! 但卻沒有說,到底是那個元件沒有註冊!

error

研究

iisSetting

先看一下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時代,這種寫法粉常見!

vbRef

而VBAspTest的專案中有參考到COM+, ASP,COM+應該是一定會有的,再來就是Check ASP是否存在! 找一下C:\WINDOWS\system32\inetsrv目錄下果然沒有ASP.DLL。

aspDll

再看果然是沒有裝ASP!

NoAspConfig

AddAspConfig

config

裝上去就可以正常在網頁上顯示出”test”的字了!

OkResult

結論

原本想說asp改成aspx在執行,很多支程式都沒有問題。而看到錯誤訊息,一直以為是那個元件沒有註冊! 又不知是那個元件,只好去看程式的Source,看了才知道要去檢查是否有沒有裝ASP。還好Source還在!

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^