共用方式為


ASP.NET 偵錯概觀

更新:2007 年 11 月

應用程式程式碼可以包含各種錯誤。大部分語法錯誤都會在編譯 (Compilation) 期間遭到攔截。不過,其他類型的錯誤則會要求您偵錯程式碼,即在程式碼執行期間對其進行檢查,以驗證執行路徑和資料是正確的。

本主題提供如何使用 Windows Software Development Kit (SDK) 中的偵錯工具來協助尋找 ASP.NET 網頁中錯誤的相關資訊。

背景

應用程式程式碼可以包含各種錯誤。大部分語法錯誤都會在編譯 (Compilation) 期間遭到攔截。不過,其他類型的錯誤則會要求您偵錯程式碼,即在程式碼執行期間對其進行檢查,以驗證執行路徑和資料是正確的。如需詳細資訊,請參閱偵錯和分析應用程式

Windows Software Development Kit (SDK) 包含一個稱為 Visual 偵錯工具 (Visual Debugger) 的工具,可以讓您在應用程式執行時對其進行檢查。此工具位於 %ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgCLR.exe。使用該偵錯工具,可藉由在應用程式執行時逐步執行每個陳述式,並檢視每個變數中的資料,了解應用程式的具體運作方式。若要使用 Visual 偵錯工具,請開啟它,然後將其附加至正在執行 ASP.NET 應用程式之網頁的處理序 (Process)。在網際網路資訊服務 (IIS) 5.0 和 5.1 版中,以及在以 IIS 5.0 應用程式模式執行的 IIS 6.0 中,您附加偵錯工具的處理序為 ASP.NET 背景工作處理序 (Aspnet_wp.exe)。在以背景工作處理序隔離模式執行的 IIS 6.0 中,您所附加至的處理序為執行緒集區處理序 (W3wp.exe)。當偵錯工具附加至處理序時,您可以檢視該處理序期間發生的所有事件,而且偵錯工具會將處理序中執行的指示對應回原來的程式碼,如此一來,您可以查看正在執行的每行程式碼。

Visual 偵錯工具

Visual 偵錯工具可讓您在程式碼執行期間對其進行檢查,它包括下列功能,可協助您偵錯應用程式:

  • 中斷點:中斷點是程式碼中偵錯工具將停止應用程式的位置,它可讓您檢視應用程式的目前資料狀態,然後逐步執行每行程式碼。如需詳細資訊,請參閱偵錯基本概念:中斷點

  • 逐步偵錯:一旦在中斷點停止,就可以逐行執行程式碼 (也稱為逐步執行程式碼)。Visual 偵錯工具包括許多可協助您逐步執行程式碼的功能,例如 Iterator,可讓您指定在再次停止前可逐步執行迴圈 (Loop) 的次數。如需詳細資訊,請參閱程式碼逐步執行概觀

  • 資料檢視:Visual 偵錯工具會向您提供在應用程式執行期間檢視和追蹤資料的許多不同選項。偵錯工具可讓您在以中斷模式停止應用程式時修改資料,然後繼續使用已修改的資料執行應用程式。如需詳細資訊,請參閱在偵錯工具中檢視資料

注意事項:

Visual Studio 2005 的編輯後繼續功能對 Web 應用程式不可用。

如需詳細資訊,請參閱在 Web 網頁中使用偵錯工具

設定 ASP.NET Web 應用程式進行偵錯

若要啟用 ASP.NET Web 應用程式的偵錯,您必須設定應用程式編譯成偵錯組建。偵錯組建包括偵錯工具逐步執行程式碼並顯示變數內容所需的資訊。您在應用程式 Web.config 檔的 Compilation 區段中設定偵錯組建的 Web 應用程式。如需詳細資訊,請參閱 compilation 項目 (ASP.NET 設定結構描述)。或者,如果要僅偵錯單一網頁,則可以將 debug=true 加入要偵錯之網頁上的 @ Page 指示詞。如需詳細資訊,請參閱 HOW TO:啟用 ASP.NET 應用程式的偵錯

注意事項:

與編譯成零售組建的應用程式相比,編譯成偵錯組建之應用程式的執行速度會相當緩慢。請確定在部署應用程式之前關閉偵錯模式。此外,在偵錯模式中,發生錯誤時會在堆疊中公開 (Expose) 詳細資訊,這可能會成為潛在的安全性問題。

本機和遠端偵錯

如果您是在本機執行 Web 伺服器 (例如 IIS),則可偵錯在電腦上本機執行的應用程式,以便在瀏覽器中檢視網頁。

如果無法在本機執行網頁 (因為您無法執行 Web 伺服器,或因為無法在本機使用應用程式),則可偵錯在其他伺服器上執行的應用程式。為了進行遠端偵錯,您必須在遠端伺服器上安裝 Visual Studio 遠端偵錯元件。如需詳細資訊,請參閱 HOW TO:設定遠端偵錯

偵錯的使用權限

與執行處理序相比,偵錯處理序需要更多的權限。因此,除了設定應用程式進行偵錯以外,還必須確定您具有足夠的使用權限,能夠附加至處理序以對其進行偵錯。使用者對於在其自身使用者本機識別 (Identity) 下執行的處理序具有偵錯權限,但他們無法偵錯其他使用者的處理序。系統管理員可以對任何處理序進行偵錯。

若要在遠端伺服器上偵錯,您需要執行要偵錯的處理序之電腦上的系統管理員權限。如需詳細資訊,請參閱 HOW TO:在遠端伺服器上偵錯 Web 應用程式

用戶端指令碼偵錯

除了伺服器端應用程式偵錯之外,Visual 偵錯工具還可讓您偵錯以 ECMAScript (JavaScript) 或 VBScript 撰寫的用戶端指令碼。當您具有使用用戶端指令碼的 Web 伺服器控制項時,用戶端指令碼偵錯會相當有用。

請參閱

工作

HOW TO:在遠端伺服器上偵錯 Web 應用程式

HOW TO:啟用 ASP.NET 應用程式的偵錯

HOW TO:偵錯 Web 應用程式和 Web 服務

概念

偵錯基本概念:中斷點

參考

Visual Studio 偵錯工具的新功能

其他資源

偵錯 ASP.NET 和 AJAX 應用程式