在以往的經驗中,很多時候,我們為了調試一個變數,會在頁面中用Response.write輸出一段字串,以驗證web程式是否運行到此處及是否正確擷取了變數。也有人會調用封裝好的js架構,alert或msgbox一條資訊。這個在asp時代是最常見的方法。如果要調試比較複雜的資訊,這種方法就顯得有點力不從心。
不過,進入asp.net環境後,我們可以將這種方法徹底忘記。因為微軟為我們提供了一個新的解決方案-Trace.axd
關於Trace.axd的官方說明,請查看MSDN:http://msdn.microsoft.com/zh-cn/library/6915t83k%28VS.80%29.aspx
它的功能主要是:配置 ASP.NET 代碼Tracing Service以控制如何收集、儲存和顯示跟蹤結果。
關鍵的幾個選項:
1、localOnly,預設為false。這個很好理解。如果為true,只在本地輸出跟蹤資訊。
2、enabled。是否啟用跟蹤。
3、pageOutput 指定在每一頁的結尾是否呈現跟蹤輸出。如果是 false,則只能通過跟蹤工具 + 生產力訪問跟蹤輸出。
4、requestLimit 指定在伺服器上儲存的跟蹤請求的數目。最大為10000,預設為10
5、traceMode 指定顯示跟蹤資訊的順序。SortByCategory或SortByTime(預設)
需要注意的是:
如果啟用了對應用程式的跟蹤,當請求任意頁時,該頁將收集跟蹤資訊並執行它所包含的任意跟蹤語句。可以在跟蹤查看器中查看跟蹤輸出。使用跟蹤查看器,您可以在已從應用程式請求的頁中選擇特定的請求。
我們看一個簡單的例子:
Vs2005/2008/vs2010環境下,建立一Web Appication,在預設的頁面是添加簡單的Label,TextBox,Button,提交一個最簡單的請求。效果如下:
對應的web.config如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<trace enabled="true"
localOnly="true"
pageOutput="true"
requestLimit="15"
mostRecent="true" />
<compilation debug="true" />
<authentication mode="Windows" />
</system.web>
</configuration>
本文參考:
http://msdn.microsoft.com/zh-cn/library/6915t83k%28VS.80%29.aspx
另外,更專業的調試工具,可以使用httpwatch
http://www.httpwatch.com/