用過ASP的人對它的調試應該是記憶深刻的。在整片整片的代碼中找到那幾個 出錯的地方,難度可想而知。現在微軟推出了ASP的更新換代產品ASP.Net。對于 ASP.Net的好處,我想很多網站都已經介紹了差不多的,不過對于ASP.Net的調試 講得就不是很多了。所以,我就以我的一點個人經驗寫了這一篇文章。由于,我 也是接觸ASP.Net不久,錯漏之處在所難免,還請大家多多指正。好了,言歸正傳。
第一招:配置Config.web
一般,當我們寫好的網頁運行出錯了,ASP.Net就會在頁面上告訴我們程序有 錯了,但究竟錯在哪里,它是沒有提示的。為了能讓ASP.Net進一步提示我們出錯 的信息。我們就有必要編輯Config.web中的配置信息。
可能還有很多剛剛接觸ASP.Net的人不太了解Config.web這個文件。那我就順便介紹一下。Config.web是ASP.Net的一個配置文件,它里面存放著關于ASP.Net的所有配置信息。當執行一個ASP.Net頁面時,它會先到該頁面所在的目錄查找這個文件,如果沒有找到,就往上一級目錄找,一直到wwwroot目錄。如果都沒有,它就會調用X:\WINNT\Microsoft.NET\Framework\v1.0.2204目錄中的Config.web文件(X為系統目錄)。所以,如果大家要想改變所有頁面的配置,就應該改WINNT目錄中的那個Config.web。另外順便說一下,當你打開Config.web后,你會發現這是一個XML結構的配置文件。
好了,介紹解說這么多了,回到我們的主題。現在你要做的第一步就是:打 開或者新建一個Config.web文件。我們分開來說: 如果是新建,你就需要用文本編輯器新建一個新的文檔,然后往里面輸入下 面的語句: <configuration> <customerrors mode="off"></customerrors> </configuration>
輸完后選擇另存為,輸入文件名Config.web,將它保存到當前頁面相同的文件夾中即可。如果是修改一個已經存在的Config.web文件,你只需要用文本編輯器打開它,然后在<configuration>和</configuration>之間的任意地方輸入: <customerrors mode="off"></customerrors>即可。
現在你可以在看一下出錯頁面的提示信息了。 上一次我們說到配置Config.web文件,讓出錯信息給出更多的提示。可光有 提示又有什么用呢?“最多就是知道錯在哪里,可我還是不會改呀!”別急,別 急,看看咱們這篇文章叫什么來著,“三板斧”,那當然是一斧賽過一斧啦!上 次那招不夠厲害,我們還有下面的那,所以別急啊,且聽我慢慢道來。
第二招:Trace追蹤
用過ASP的人應該都用過下面的語句吧: Response.Write XXX Response.End
雖然我不太喜歡ASP的編程方法,但是這種方便的調試手段還是很好的。換用 ASP.Net以后,我發現ASP.Net提供一種更強大的調試方法,它就是我們現在要說 的Trace。所謂Trace功能就是在網頁的最前面加上一些標記,至于是什么標記呢?嘿嘿,我不能馬上告訴你(不好,臭雞蛋……哇!)。我是說,我要先介紹一點基礎的知識啦!
我不知道大家對ASP.Net的頁面標示了解多少,為了下面講解的方便,我還是 概要的介紹一下吧!ASP.Net的頁面標示指的是在每一個ASP.Net頁面最上面,用 <%@和%>括起來的語句。它的功能是用來確定在處理ASP.Net文件的時候,需要系 統做一些什么特殊的設定。具體的語法如下: <%@ directive attribute=value %> 其中:directive就是頁面標示符;attribute是該標示符對應的一些屬性。 注意:在屬性之間需要空格,而在"="之間不能有空格。 ASP.Net現在包含以下7種標識 @ Page, @ Control, @ Import, @ Registe, @ Assembly, @ OutputCache, @ Webservice
我們用得最多的就是@ Page標示,而現在我要講的Trace功能,也要用到@ Page。(關于這七個標示的具體應用,我會在以后發貼講述的。)好了,回到我們的主題。要用Trace功能,你必須在頁面的最上面加上:<%@ Page Trace="true" %> 這句話。加好后,你就可以看看頁面的運行情況了。運行該頁面。你會發現在頁面的下半部分出現了一大堆的數據。下面就來解釋一下這些數據的含義: Request Details:通過Request方式向瀏覽器所讀取的數據; Trace Information:事件發生或程序執行的過程信息; Control Tree:網頁所使用的控件及控件之間的階層關系; Cookies Collection:網頁所使用的Cookie信息; Headers Collection:瀏覽器的表頭信息。 Server Variables:Server變量的數據信息。
有了這一大堆數據,我們的工作就好做多了,但且慢歡喜,Trace還提供了更強大的功能,請接著看下去。
除了讓ASP.Net頁面顯示這一堆數據外,我們還可以將程序中用到的變量的 值實時的顯示在Trace Information區段中,其方法是調用Trace.Warn或Trace.Write兩個方法。他們的用法如下: Trace.Warn("Description",Variables); Trace.Write("Description",Variables);
我想你們一定會問,這兩個有什么區別呢?回答是:在功能上,這兩個是一模一樣的,只是在顯示上,Trace.Warn將會以紅色字體表示 第三招 查錯神器Debugger
要用好的兵器,沒點準備是不行的,所以我們就先來做點準備運動。 1.Config.web的設定:還記得第一招中講的嗎?對了,還是這個文件,打開它,向里面加入這條語句 <compilation debugmode="true"></compilation> 說明:由于在預設情況下,ASP.Net會以正常模式來運行頁面,為了能讓它以查錯模式編譯網頁,我們就必須加入這句語句。
2.啟動查錯工具DbgUrt.exe:這個程序放在x:\Program Files\Microsoft.Net\FrameworkSDK\GuiDebug目錄里,文件名是DbgUrt.exe
3.激活查錯功能: 運行DbgUrt.exe程序 --〉選取菜單Debug/Processes --〉在出現的Processes對話框中選中Show system processes和Show processes in all sessions --〉在Available processes列表框的最下面找到xspwp.exe(如果沒有,請運行一.aspx頁面,然后按Refresh鍵。) --〉選取該文件后,按Attach鍵 --〉在出現的對話框中選中Common Language Runtime,然后按OK,回到Processes對話框 --〉按Close鍵 --〉在程序的主菜單中選取File/Open/File,打開你想要檢測的文件。
下面正式開始頁面調試。 利用DbgUrt.exe打開欲調試的文件后,我們要做的第一件事情就是:設置斷 點。是不是覺得和其它Windows應用程序的調試很像(什么很像?簡直就是一模 一樣嗎!)加斷點的方法很簡單,先決定需要加斷點的地方,然后將光標移動到 該行,按下F9或者在該行的最前面點擊鼠標左鍵,該句前面就會出現一個問號的 標記,這就是斷點!我們當然可以設定多個斷點,只要你喜歡。你要是像取消一 個斷點,只需在該行重復設置斷點的動作即可。
設置好斷點后,只要使用瀏覽器瀏覽被調試的頁面,當程序運行到斷點的位 置時,它就會自動彈出DbgUrt.exe,并且停在剛才的斷點位置。這是,我們就可 以利用Command Window-Immediate窗口檢查變量的值了。
當我們想繼續執行當前頁面時,我們有幾種選擇: 1、按F5鍵,運行到下一個斷點,若沒有斷點,則運行完該頁面; 2、按F11鍵,執行單步操作; 3、按F10鍵,同樣是單步操作,但它會進入子程序(函數)中的語句。
當然,DbgUrt.exe的功能肯定比我介紹的要強大的多。編寫ASP.Net程序,有 個這樣的利器,真是省了我們很多時間啊!怎么還不
|