摘要:在ASP.NET程序開發(fā)過程中,如何調(diào)試程序是非常重要的。隨著.Net框架的出現(xiàn),開發(fā)人員可以利用Visual Studio來調(diào)試和跟蹤程序的執(zhí)行過程。這篇文章講述了調(diào)試、跟蹤ASP.NET應(yīng)用程序的基本方法。
關(guān)鍵詞:ASP.NET;調(diào)試;跟蹤
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2011)04-0827-02
Debug and Trace on ASP.NET Application
ZHOU Wen, REN Qi
(Computer Application Engineering Department of Wuhan Vocation College of Software Engineering, Wuhan 430074, China)
Abstract: During the ASP.NET developing, how to debug application is important to developers. With the appearance of .Net Framework, we can use Visual Studio.Net to help us to debug and trace our application while executing. This passage talks about that the basis methods of debug and trace on ASP.NET application.
Key words: ASP.NET; debug; trace
以前在開發(fā)ASP.NET應(yīng)用程序過程中,調(diào)試對于開發(fā)人員來說是痛苦的,一般情況下,ASP.NET頁面運行出錯時沒有錯誤提示的,開發(fā)人員通常會在程序中加入Response. Write()方法來觀察變量的值是否正常,但部署到服務(wù)器上去時刪除這些調(diào)試語句很麻煩也很容易忘記。但隨著.NET框架的出現(xiàn),開發(fā)人員可以利用Visual Studio.Net中的調(diào)試程序來跟蹤整個Web應(yīng)用程序的執(zhí)行,或者使用ASP.NET中引入的新功能—跟蹤,在應(yīng)用程序運行時監(jiān)視其執(zhí)行的情況。
1 配置ASP.NET Web應(yīng)用程序以進行調(diào)試
ASP.NET的調(diào)試模式分為兩種:應(yīng)用程序級調(diào)試模式和頁面調(diào)試模式。
1) 如果只調(diào)試單個網(wǎng)頁,可以在要調(diào)試頁面中的“<%@Page%>”指令中添加debug=“true”屬性,啟用頁面調(diào)試。
2) 應(yīng)用程序級調(diào)試模式,必須在“項目屬性”頁和應(yīng)用程序的web.config文件中都啟用調(diào)試。
在項目屬性中啟用ASP.NET調(diào)試。
在[解決方案資源管理器]中右擊Web項目的名稱,然后在彈出的快捷菜單中選擇[屬性]菜單項,在項目的[屬性]上單擊[Web]選項卡,在[調(diào)試器]下面選擇[ASP.NET]復選框。如圖1所示。
在web.config中設(shè)置
啟動調(diào)試后,ASP.NET應(yīng)用程序就可以和Windows窗體應(yīng)用程序一樣設(shè)置斷點和逐行執(zhí)行代碼來進行調(diào)試了,另外在“錯誤列表窗口”中顯示出變異錯誤信息,在“錯誤列表窗口”中雙擊任何一個錯誤,將直接定位到發(fā)生該錯誤的代碼處。
2 使用Trace對象進行跟蹤
ASP.NET提供兩種類型的跟蹤:頁面級的跟蹤和程序級的跟蹤。
ASP.NET跟蹤提供有以下功能:可以在代碼中編寫調(diào)試語句,而不需要在將應(yīng)用程序部署到服務(wù)器上時刪除這些語句;可以在頁中編寫變量或結(jié)構(gòu),通過應(yīng)用程序的執(zhí)行路徑進行一般的跟蹤。
2.1 頁面級跟蹤
默認情況下跟蹤時禁用的,可以在“<@page>”中設(shè)置Trace的屬性為“true”來開啟跟蹤。例如:啟動Visual Studio 2008,新建ASP.NET Web應(yīng)用程序,在系統(tǒng)自動創(chuàng)建的default.aspx頁面的設(shè)計窗口中,添加一個TextBox控件和一個Button控件,如圖2所示。
在Button1_Click事件處理程序中添加代碼:
protected void Button1_Click(object sender, EventArgs e)
{
TextBox1.Text = \"這是我的第一個網(wǎng)站\";
for (int i = 0; i < 5; i++)
Trace.Warn(i.ToString());
}
其中Trace類的Warn()方法可以把跟蹤信息打印為紅色。運行項目,得到的追蹤信息如圖3所示。
2.2 應(yīng)用程序級跟蹤
打開網(wǎng)站的Web.config文件,在system.web節(jié)添加一個trace元素,設(shè)置如下:
其中enabled=\"true\"是設(shè)置啟用應(yīng)用程序級跟蹤,pageOutput=\"true\"是設(shè)置跟蹤信息顯示在每頁底部,此時運行ASP.NET程序,在地址欄最后輸入trace.axd可以看到跟蹤信息,如圖4所示。
另外,Trace標記的常用屬性還有mostRecent、requestLimit和localOnly,mostRecent如果為1,則顯示對請求的跟蹤數(shù)據(jù),直至達到requestLimit屬性指定的限制。requestLimit可以指定在服務(wù)器上存儲的跟蹤請求的數(shù)目,如果達到限制,并且mostRecent屬性為1,將自動禁用跟蹤。requestLimit的默認值為10。而屬性localOnly則可以指定跟蹤查看器(Trace.axd)是否只用于主機Web服務(wù)器,如果為true,則跟蹤查看器只用于主機,因此啟動應(yīng)用程序級跟蹤可以避免任何計算機都可以看到跟蹤信息。
參考文獻:
[1] 國家863中部軟件孵化器.C#從入門到精通[M].北京:人民郵電出版社,2010:328-330.
[2] 王小科,徐薇.C#從入門到精通[M].北京:清華大學出版社,2010:303-307.
[3] 江南.C#2008程序設(shè)計基礎(chǔ)案例教程[M].北京:機械工業(yè)出版社,2010:65-78.
[4] 林義證,蔡文龍,吳昱欣.Visual C# 2005完全開發(fā)指南[M].北京:北京科海電子出版社,2008:419-430.