ASP Error '0115'的一些解決辦法
總的看法:
ASP Error 0115意味著你的asp中的一個組件調用失敗,並且同時ASP
不能夠從這個失敗中獲取更多的錯誤信息了。
Error 'ASP 0115'
Unexpected error
/scripts/<filename>
A trappable error occurred in an external object. The script cannot continue running.
ASP Error '0115'對於ASP開發者來說是一個噩夢,這個錯誤意味著
ASP使用的一個組件已經Crash掉了。最致命的是你還不能夠得到更多的更詳細的出錯信息。
所以這有很多的可能會導致這個錯誤,從而也導致了有很多不同的解決辦法。
下面是幾個比較經典的解決方案:
(一) (對於IIS 3/4來說):
服務端程序的安裝順序:
有的時候當你在服務端按照錯誤的順序安裝了新的軟件後,一些版本新的DLL被舊版本的給覆蓋了,
可氣的是,你通常都不被通知這些關鍵的動態連接庫被覆蓋了.在這些出錯中,你尤其應該注意的是當你
安裝了任何一個涉及到VB5的數據組件時(dll,ocx),ADO的DLL並沒有被VB5的安裝程序中帶的舊版本給覆蓋,.
VB5的安裝程序而是將舊版本的dll安裝到Windows\system 或則 winnt\system32目錄中,並且在這些目錄中注冊了
這些dll(它們將在你的注冊表中替換掉你的新版本dll在IIS中的的注冊默認目錄位置),
要解決由於VB5帶來的麻煩就是重新再注冊你原來的dll。
(二) 一個安裝服務端程序時的推薦順序:
Windows NT 4.0
NT 4.0 Option Pack (IIS 4等)
NT 4.0 SP4
SQL Server 7.0
MDAC 2.0 SP2
IE 5.0
(三) MDAC版本導致的錯誤:
安裝最新的MDAC版本能夠幫助你解決好多莫名其妙的ASP 0115錯誤。最新的版本可以去微軟的站點下載。
(四) 由於匿名帳號引起的安全問題:
匿名帳號的權限決定了你的ASP中需要訪問到的組件中某些函數的正確性.
a) 如果沒有給用戶相應的訪問權限,ADO的DLL將抱錯:'0115' error.
b) 確信你的匿名帳號能夠訪問如下目錄:System32目錄,InetPub目錄,你的RDBMS安裝的目錄以及ADO DLL所在的目錄
(五)提交Form時出現的錯誤
這個錯誤請參考MSDN中的文章id為Q173741
(六)糟糕的代碼習慣導致的錯誤:
有些時候'0115'是由於你糟糕的代碼導致的(不過也許同樣的代碼由於運氣不同,在不同的機器上不會發生錯誤)
a) 當一個頁面提交一個Form給本身時,沒有給該form的name屬性賦值
b) 在編寫dll時沒有聲明類型本來為variant的變量為variant
c) 在調用一個不存在的存儲過程時,或則調用該存儲過程的參數傳遞錯誤。
(六)對於使用IIS 3的編程人而言:
a)session 對象導致的出錯:
b)ADO 2.0:
在IIS3中安裝了ADO 2.0導致出錯