top
Loading...
調試ASP服務端的組件技術
本文主要介紹如何調試ASP服務端組件技術,包括這個復雜的出錯信息:

一、ASP 0115 Error。

二、代碼在單獨的EXE文件里面運行良好,但是一旦放入ASP中產生調用失敗的信息本文背景:

第一種情況:你在你的瀏覽器中可否看見過這種信息呢?

Error 'ASP 0115'Unexpected error/<Web Name>/<ASP file name>.aspA trappable error occurred in an
external object. The script cannot continue running.

這就是令每個程序員都頭疼的ASP 0115錯誤,這個錯誤可以由很多原因而導致的。也許許多人會推測可能是由于微軟
本身的bug而導致的,并抱怨是由于微軟沒有給出響應的補丁。

其實在實踐中有一些確實如此,但是大多數情況下事實并不是如此。而很多是由于你自己寫的代碼中錯誤的訪問了
Inetinfo.exe的進程而產生的。

第二種情況:你是否遇到過這種尷尬的情況,自己寫的代碼如果是在一個exe項目種能夠良好的運行,但是一旦你從一
個ASP頁面種調用它的時候,就會失敗呢?

同樣,發生這個現象的原因也很多,而其中的大多數原因是由于ASP是運行在一個特定的系統帳號下的,在這樣的背景
下,它運行的權限是一個不容忽視的問題。

我想,做了這么久的程序員,很多人都有豐富地單獨調試一個EXE程序的經驗了,但是當你是在編寫運行在IIS環境下
的程序時,你將面臨和傳統的調試更多的挑戰。

盡管可以使用VB或則VC++來編寫ASP的組件,但是VC++的調試器都將是你最好的調試工具。

準備好你的組件

為了調試你編寫的組件,你必須要有調試需要的信息。Symbols允許在你的組件出錯時顯示出是你編寫的代碼中的第幾
行出現了錯誤。

那我們在VB中如何生成組件需要的symbols呢?

如果你的組件是使用VB編寫的話,你可以通過選擇Compile菜單中的ProjectProperties命令來建立你的組件的調試信
息.

確保你將代碼編譯成'Native Code'和使用'No Optimization'.

那我們在VC++中如何生成組件需要的symbols呢?

如果你的組件是使用VC++編寫的話,最簡單的方法是選擇調試配置來生成調試信息。從Build菜單中單擊'Set Active
Project Configuration'.你將發現'Win32 Debug'這個選項。或則,你可以手工來定義組件需要包含的調試出錯信息,選
擇Project菜單中的Settings然后到Link頁.確保Generate debug info被選中。

開始調試進程

在前面已經提到了,我們將使用VC++來完成調試工作。好,運行它,當然沒有必要建立一個項目或則工作間了。

選擇Build菜單中的Start Debug中的Attach to Process.在Attach toProcess對話框中,選中Show System
Processes.從列表框中找到進程inetinfo,然后單擊OK。

下一步,你要確保symbols已經被轉載入內存。從Project菜單中,單擊Settings選擇Debug頁,從Category下拉框中選擇
Additional DLLs'如果你沒有在列表中看到你編寫的組件,單擊第一行空行,然后輸入文件名,或則選擇那個'...'按鈕來
查找這個文件名,單擊OK。

好了,現在你已經裝載了你的symbols,你需要裝載一些源代碼。從File菜單中選擇Open.找到你想調試的源文件。如果
你的組件是使用VB編寫的話,確保在Files of Type下拉框中選擇所有文件類型,然后找到你需要的文件后,單擊Open。

好了,現在你可以在你的代碼中放置斷點,設置觀察值,查看調用堆棧等等就象你在調試一個傳統的exe一樣了。

北斗有巢氏 有巢氏北斗