ASP.NET 程式追蹤與偵錯
description
Transcript of ASP.NET 程式追蹤與偵錯
ASP.NETASP.NET 程式追蹤與偵錯程式追蹤與偵錯
APS.NETAPS.NET 追蹤與偵錯追蹤與偵錯 ASPASP 不提供,只留下錯誤訊息不提供,只留下錯誤訊息 ASP.NETASP.NET 提供提供 TRACINGTRACING 功能功能 錯誤報告更正確,更豐富錯誤報告更正確,更豐富 安全與隱密性高安全與隱密性高
追蹤追蹤
ASP.NETASP.NET 啟用追蹤功能啟用追蹤功能 @Page @Page 指示詞指示詞 (Directives)(Directives) 的的 tracetrace 屬性屬性
指示指示 ASP.NETASP.NET 在輸出網頁內容時附加追蹤輸出在輸出網頁內容時附加追蹤輸出
ASP.NETASP.NET 啟用追蹤功能啟用追蹤功能1. 1. 更改網頁的呈現方式更改網頁的呈現方式 GridLayoutGridLayoutFlowLayoutFlowLayout將追蹤頁與輸出網頁分開將追蹤頁與輸出網頁分開
ASP.NETASP.NET 啟用追蹤功能啟用追蹤功能2. 2. 拖拉拖拉 LabelLabel 到到 webformwebform 上 上 (FlowLayout(FlowLayout 模式會讓模式會讓 LabelLabel 固定顯示在最上方固定顯示在最上方 ))
ASP.NETASP.NET 啟用追蹤功能啟用追蹤功能3. 3. 點選空白處點選空白處選擇選擇 [DOCUMENT][DOCUMENT] 物件物件將將 [trace][trace] 屬性設定為屬性設定為 truetrue
ASP.NETASP.NET 啟用追蹤功能啟用追蹤功能@Page@Page 指示詞的指示詞的 tracetrace 屬性增加了屬性增加了 trace=“True”trace=“True”
指示指示 ASP.NETASP.NET 在輸出網頁內容時附加追蹤輸出在輸出網頁內容時附加追蹤輸出
ASP.NETASP.NET 啟用追蹤功能啟用追蹤功能4. 4. 儲存並建置專案儲存並建置專案5. 5. 執行程式執行程式
追蹤 cookies, 表單 , querystring 等內容
ASP.NETASP.NET 追蹤區段追蹤區段
追蹤輸出區段:追蹤輸出區段: 要求的詳細資訊要求的詳細資訊 追蹤資訊追蹤資訊 控制項樹狀結構控制項樹狀結構 Cookie Cookie 集合集合 檔頭集合檔頭集合 表單集合表單集合 伺服器變數伺服器變數
程式控制輸出程式控制輸出
會以紅字加以標示
程式控制輸出程式控制輸出
ASP.NETASP.NET 追蹤功能追蹤功能 這個輸出是針對任何這個輸出是針對任何 clientclient 安全性考量最好設定成只提供開發本機使用安全性考量最好設定成只提供開發本機使用 可以透過修改可以透過修改 web.configweb.config 來完成來完成 (( 加入加入 <trace<trace
>> 組態元素組態元素 )) 部署發布網頁時應將此功能取消部署發布網頁時應將此功能取消
ASP.NETASP.NET 追蹤功能追蹤功能 22
ASP.NETASP.NET 追蹤功能追蹤功能 22
修改修改 web.configweb.config
滑鼠快按兩下
ASP.NETASP.NET 追蹤功能追蹤功能 22
ASP.NETASP.NET 追蹤功能追蹤功能 22
更改 <trace><trace enabled=“true” requestlimit=“40” pageoutpu=“false” tracemode=“sortbycategory” localonly=“true”/>
偵錯偵錯
程式錯誤種類程式錯誤種類 語法錯誤:程式無法執行語法錯誤:程式無法執行 語意錯誤:程式會中斷或毀損語意錯誤:程式會中斷或毀損 邏輯錯誤:程式不會中斷或毀損邏輯錯誤:程式不會中斷或毀損
程式錯誤的預防程式錯誤的預防 命名規則一致命名規則一致 適時加入註解適時加入註解 建立測試計畫:如何測試每一個功能建立測試計畫:如何測試每一個功能 盡量使用盡量使用 IDEIDE 開發開發 找其他測試者來測試程式找其他測試者來測試程式
預設使用預設使用 DEBUGDEBUG 模式編譯程式模式編譯程式假設有一個除以零的狀況產生
預設使用預設使用 DEBUGDEBUG 模式編譯程式模式編譯程式雖然出現錯誤訊息,但是也暴露的程式碼
關閉關閉 DEBUGDEBUG 模式編譯程式模式編譯程式
關閉關閉 DEBUGDEBUG 模式編譯程式模式編譯程式Web.config <compilation>
將 debug=“true” 改成 debug=“false”
關閉關閉 DEBUGDEBUG 模式編譯程式模式編譯程式
改成 release
重新建置專案再執行 ( 不可以使用 來執行 )
關閉關閉 DEBUGDEBUG 模式編譯程式模式編譯程式只出現錯誤訊息
自動導向錯誤頁面自動導向錯誤頁面
自動導向錯誤頁面自動導向錯誤頁面
Mode 設定為 OndefaultRedirect 設定錯誤頁面
設定中斷點設定中斷點
設定中斷點設定中斷點
直接改變變數值直接改變變數值直接改變變數值,按 F10 或 F11繼續向下執行
例外錯誤處理例外錯誤處理
例外錯誤處理例外錯誤處理trytry{{ 原來正常執行的程式碼原來正常執行的程式碼}}catch (Exception e)catch (Exception e){{ 有錯誤發生時的處理程式碼有錯誤發生時的處理程式碼}}finallyfinally{{ 一定會執行的程式碼一定會執行的程式碼 (( 不管有沒有錯誤不管有沒有錯誤 ))}}
例外錯誤處理例外錯誤處理
例外錯誤處理例外錯誤處理