以前使用ASP開發過Web應用程式的人員肯定知道調試Web應用程式是多麼麻煩。在ASP中,調試是痛苦的,通常包括了使用Response.Write()方法輸出變數的值。那麼請問一下自己:你有多少次忘記了在布署應用程式之前刪除了調試語句?
隨著.NET架構組件的出現這種情況發生了徹底的改變。在.NET中,你可以使用Visual Studio .NET中的偵錯工具跟蹤整個Web應用程式的執行,或者使用System.Web.TraceContext名字空間中的Trace類。本文示範如何使用Trace類輔助你的調試工作。
使用Trace類
ASP.NET中包含了一個協助跟蹤應用程式資訊流的Trace類。作為使用Response對象進行調試的代替,你現在可以使用Trace類列印出調試資訊了。
為了示範它的使用,我們首先建立一個ASP.NET Web應用程式,並在預設的WebForm1上放置一個Button和一個ListBox控制項(如圖1所示)。用三個項填充ListBox控制項並把它的AutoPostBack屬性設定為True。
圖1.填充預設的WebForm1
對於本文,我希望跟蹤應用程式的執行流。首先,啟用跟蹤,頁面指令要求含有Trace屬性,它的值設定為True(切換到查看HTML源模式),如圖2所示。
圖2.啟用跟蹤
下一步,我在Form的load事件中插入Trace語句,這樣我就知道是否發生了Postback。PostBack事件是ASP.NET中的最容易混亂的一個特性,它經常導致初用ASP.NET的開發人員的失敗。
Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
'此處放置初始化頁面的使用者代碼
Trace.Write("Page loaded")
If Not IsPostBack Then
Trace.Write("Not in a postback")
' postback發生的時候執行一些操作
Else
Trace.Write("In a postback")
' 執行一些操作
End If
End Sub
我同樣想知道當ListBox資料項目被選擇的時候是否發生了postback: