在文章調(diào)試JavaScript/VB Script腳本程序(Wscript篇)里面,有網(wǎng)友問我如何調(diào)試ASP里面的腳本程序,我不知道他問得是調(diào)試ASP網(wǎng)頁里面的VBScript ASP代碼,還是ASP.NET網(wǎng)頁里面的JavaScript/VBScript客戶端代碼,所以我就在這篇文章里面先將調(diào)試ASP網(wǎng)頁里面的ASP代碼這種情況都解釋一下吧。
估計(jì)ASP這個玩藝用的人已經(jīng)很少了,但是還是有很多老網(wǎng)站是用ASP技術(shù)制作的,維護(hù)的時候,還是需要調(diào)試修改一下ASP網(wǎng)頁代碼的。雖然ASP網(wǎng)頁的代碼大部分都是VBScript或者JavaScript編寫的,而很多在瀏覽器上運(yùn)行的DHTML代碼也是用JavaScript/VBScript寫成,這很容易誤導(dǎo)程序員,認(rèn)為兩者都是在瀏覽器上運(yùn)行的,其實(shí)不然。
ASP網(wǎng)頁代碼是在服務(wù)器端運(yùn)行的,具體來說是由IIS里面執(zhí)行,為什么IIS可以同時執(zhí)行ASP網(wǎng)頁和ASP.NET網(wǎng)頁代碼,如果我告訴你IIS還可以執(zhí)行JSP代碼,你信不信?當(dāng)然啦,IIS如何可以執(zhí)行ASP,ASP.NET和JSP等代碼又可以開一系列的文章來講解啦。
而DHTML代碼是在瀏覽器端(IE或者Firefox)執(zhí)行的,兩種代碼不同的執(zhí)行方式也決定了不同的調(diào)試策略。
綜上所述,兩種是不同是事物,但是兩者是相輔相成,不可分割的……
為了調(diào)試ASP網(wǎng)頁代碼,你需要調(diào)試IIS工作進(jìn)程(不是IISAdmin那個進(jìn)程),在IIS 6.0中,IIS工作進(jìn)程名叫做w3wp.exe(World Wide Web Process),在IIS 6.0之前好像是dllhost.exe。因?yàn)?/span>IIS 5.0用的人已經(jīng)不多了—主要是我已經(jīng)不用了,所以本文是以IIS 6.0作為平臺講解的。
因?yàn)榇蜷_調(diào)試支持會影響到網(wǎng)站的性能—即響應(yīng)速度,所以默認(rèn)情況下,IIS將ASP的調(diào)試功能關(guān)閉了:
1. 打開IIS管理界面(IIS Manager或者iisadmin.exe)。
2. 右鍵單擊你要調(diào)試的網(wǎng)站,例如“默認(rèn)網(wǎng)站(Default Web Site)”。
3. 點(diǎn)擊“家目錄(Home Directory)”,點(diǎn)擊“配置(Configuration)”。
4. 選擇“調(diào)試(Debugging)”頁簽。
5. 將“調(diào)試標(biāo)志(Debugging Flags)”的兩個勾都選上,如下圖所示:
6. 啟動Visual Studio,點(diǎn)擊“工具(Tools)”—“附加到進(jìn)程…(Attach to process …)”。
7. 在“選擇進(jìn)程(Available Process)”對話框里面,選擇w3wp.exe(注意,選擇“類型(Type)”列為“腳本,x86(Scripting, x86)那一個”)。
如果你在對話框里面沒有看到w3wp.exe,請先訪問一下網(wǎng)站—因?yàn)榫W(wǎng)站可能重啟了,然后點(diǎn)擊“附加到進(jìn)程…(Attach to process …)” 對話框上面的“刷新”按鈕。
如果還是沒有看到w3wp.exe,勾選“顯示所有用戶的進(jìn)程(Show processes for all users)”和“顯示所有會話的進(jìn)程(Show processes in all sessions)”兩個復(fù)選框,再點(diǎn)刷新試試。
如果還是沒有看到,那么……
a) 要么回到第一步重新做一次。
b) 要么問候一下Visual Studio祖宗,回去睡覺,徹底忘掉這篇文章。
現(xiàn)在的效果應(yīng)該和下圖類似:
8. 很遺憾,現(xiàn)在的Visual Studio 只支持設(shè)置函數(shù)斷點(diǎn)了,至少我在2008里面是不能直接在代碼行上設(shè)置斷點(diǎn)了。
9. 點(diǎn)擊Visual Studio的“調(diào)試(Debug)”—“窗口(Windows)”—“斷點(diǎn)(Breakpoints)”菜單。
10. 然后點(diǎn)擊“函數(shù)斷點(diǎn)(Break at Function …)”,如下圖所示:
11. 在接下來的窗口中輸入—TestFunction,如下圖所示:
12. 回到IE里面,刷新一下頁面,這個時候,你應(yīng)該可以做ASP調(diào)試了,如下圖所示:
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點(diǎn)擊進(jìn)入論壇