明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

調試 ASP 腳本(轉自IIS5.0文檔)

[摘要]調試 ASP 腳本無論是否有經驗,您都可能會遇到程序錯誤,或叫“bug”,這將影響服務器端腳本正常工作。因此,對于開發(fā)成功和強大的 ASP 應用程序,特別是當應用程序變得越來越復雜時,調試(即發(fā)現和改正腳本錯誤的過程)就顯得極其重要了。 Microsoft 腳本調試程序工具Microsoft 腳本...

調試 ASP 腳本
無論是否有經驗,您都可能會遇到程序錯誤,或叫“bug”,這將影響服務器端腳本正常工作。因此,對于開發(fā)成功和強大的 ASP 應用程序,特別是當應用程序變得越來越復雜時,調試(即發(fā)現和改正腳本錯誤的過程)就顯得極其重要了。 Microsoft 腳本調試程序工具
Microsoft 腳本調試程序工具是一個強大的調試工具,可以幫助您快速定位錯誤并可以交互式地測試服務器端腳本。使用腳本調試程序,也可以與 Windows Internet Explorer 3.0 或更高版本一起使用,您可以: 每次運行一行服務器端腳本。 在執(zhí)行服務器端腳本期間,打開命令窗口以監(jiān)視變量、屬性或數組元素的值。 在腳本的指定行,(使用調試程序或腳本命令)設置斷點以暫停執(zhí)行服務器端腳本。 運行服務器端腳本時跟蹤過程。
注意 可以使用調試程序查看腳本和定位錯誤,但不能直接編輯腳本。要改正錯誤,必須使用編輯程序來編輯腳本,保存更改,然后再次運行該腳本。 啟用調試
在開始調試服務器端腳本之前,首先必須將 Web 服務器配置為支持 ASP 調試。有關說明和信息,請參閱啟用 ASP 調試。
啟用 Web 服務器調試后,您可以使用下面任意一種方法調試腳本: 手工打開腳本調試程序以調試 ASP 服務器端腳本。 使用 Internet Explorer 請求 .asp 文件。如果文件包含錯誤或故意用來中斷執(zhí)行的語句,腳本調試程序將自動啟動,顯示腳本并標出錯誤的來源。 腳本錯誤
調試服務器端腳本的過程中,可能遇見幾種類型的錯誤。有些錯誤可能導致腳本執(zhí)行錯誤、中斷程序的執(zhí)行或返回錯誤的結果。 語法錯誤
“語法”錯誤是一種經常遇到的錯誤,它是由錯誤的腳本語法引起的。例如,命令拼寫錯誤或傳遞給函數的參數值錯誤都可能產生錯誤。語法錯誤可以阻止腳本運行。 運行時錯誤
“運行時”錯誤發(fā)生在腳本開始執(zhí)行之后,它是由試圖執(zhí)行不可能的操作的腳本指令所引起的。例如,下面的腳本包含一個函數,該函數以 0 作為變量的除數(非法數學操作),產生運行時錯誤:<SCRIPT LANGUAGE=VBScript RUNAT=SERVER>Result = Findanswer(15)Document.Write ("結果是 " &Result)Function Findanswer(x)'這條語句產生運行時錯誤。Findanswer = x/0End Function</SCRIPT>
運行時錯誤必須改正,腳本才會不中斷地執(zhí)行。 邏輯錯誤
邏輯錯誤是最難以發(fā)現的錯誤。邏輯錯誤是由鍵入錯誤或程序邏輯上的缺陷引起的,腳本運行沒問題,但產生的結果不正確。例如,如果服務器端腳本將對列表中的值進行排序,但在腳本中本該使用 < 符號(小于號)的地方錯誤地使用了 > 符號(大于號),將導致排序結果不正確。 錯誤調試技術
您可以使用幾種不同的調試技術定位錯誤源并測試應用程序。 實時(JIT)調試
當運行時錯誤中斷了服務器端腳本執(zhí)行時,Microsoft 腳本調試程序自動啟動,顯示 .asp 文件,將語句指針指向導致錯誤的行,并生成錯誤消息。使用這種類型的調試,也叫“實時調試”,計算機將暫停進一步執(zhí)行程序。必須使用編輯程序改正錯誤并保存所作更改,然后才能繼續(xù)運行腳本。 斷點調試
當發(fā)生錯誤但無法輕松地找到錯誤源的時候,預先設置“斷點”有時會很有用。斷點在指定的腳本行暫停執(zhí)行腳本?梢栽诳梢傻男星懊嬖O置一個或多個不同的斷點,然后使用調試程序檢查腳本中設置的變量或屬性的值。改正錯誤后,可以清除斷點,這樣腳本就可以不間斷地運行了。
要設置斷點,使用腳本調試程序打開腳本,選擇腳本中想要中斷執(zhí)行的行,然后從“調試”菜單中選擇“切換斷點”。然后使用 Web 瀏覽器重新請求腳本。執(zhí)行到設置了斷點的腳本行后,計算機啟動腳本調試程序,顯示腳本,并且語句指針指向設置了斷點的行。 在下一條語句中斷
在某些情況下,如果下一條語句不是運行在您所工作的 .asp 文件中,您可能想要啟用腳本調試程序的“在下一條語句中斷”。例如,如果對駐留在名為 Sales 的應用程序中的 .asp 文件設置了“在下一條語句中斷”,則當運行 Sales 應用程序(或已經啟用了調試的應用程序)的任何文件中的腳本時都將啟動調試程序。有鑒于此,當設置“在下一條語句中斷”時,需要注意無論下一條運行的是何種腳本語句,都將啟動調試程序。 VBScript 的 Stop 語句調試
也可以添加斷點到用 VBScript 編寫的服務器端腳本中,方法是在服務器端腳本的可疑部分之前的某個位置插入一條“Stop”語句。例如,下面的服務器端腳本包含一條“Stop”語句,該語句將在腳本調用自定義函數之前暫停執(zhí)行腳本:<%intDay = Day(Now())lngAccount = Request.Form("AccountNumber")dtmExpires = Request.Form("ExpirationDate")strCustomerID  =  "RETAIL" & intDay & lngAccount & dtmExpires'在此設置斷點Stop'調用注冊組件。RegisterUser(strCustomerID)%>
請求該腳本時,調試程序啟動并自動顯示 .asp 文件,并且用語句指針指示出“Stop”語句的位置。在該斷點處,您可以選擇檢查在將變量傳遞給組件之前賦給變量的值。
要點 必須將“Stop”語句從生成的 .asp 文件中刪除。 JScript 的 Debugger 語句調試
要添加斷點到用 VBScript 編寫的服務器端腳本中,請在腳本的可疑行之前插入“debugger”語句。例如,下面的腳本中包含“debugger”語句,它用來中斷執(zhí)行,并在每次腳本循環(huán)通過一個新值時自動啟動腳本調試程序。<%@ LANGUAGE=JScript %><%for (var count = 1; count <= 10; count++)  {var eventest = count%2//設置斷點,使用戶可以單步執(zhí)行腳本。debuggerif (eventest == 0)Response.Write("Even value is " + count + "<br>")   }%>
必須將“debugger”語句從生成的 .asp 文件中刪除。
注意 不要將“debugger”語句與 JScript 的“break”語句混淆!癰reak”語句用于退出執(zhí)行期間當前正在運行的循環(huán),并不激活 Microsoft 腳本調試程序,也不暫停執(zhí)行。 調試腳本的技巧
除了腳本調試程序,一套優(yōu)秀的調試技巧可以大大減少花費在研究腳本錯誤源上的時間。雖然大多數錯誤有明顯的來源,如命令拼寫錯誤或缺少變量,但還有某些類型的邏輯和執(zhí)行錯誤很難發(fā)現。
關于 Microsoft 腳本調試程序的詳細信息,請參閱位于 http://msdn.microsoft.com/scripting/ 的 Microsoft 腳本技術站點。