ASP.NET 调试概述

更新:2007 年 11 月

应用程序代码可能会包含各种类型的错误或 Bug。在编译过程中将捕获大部分语法错误。但是,其他类型的错误需要调试代码,即在代码运行时检查代码以验证其执行路径和数据是否正确。

本主题提供有关如何在 Windows 软件开发工具包 (SDK) 中使用调试器以帮助查找 ASP.NET 网页中的错误的信息。

背景

应用程序代码可能会包含各种类型的错误或 Bug。在编译过程中将捕获大部分语法错误。但是,其他类型的错误需要调试代码,即在代码运行时检查代码以验证其执行路径和数据是否正确。有关更多信息,请参见调试和分析应用程序

Windows 软件开发工具包 (SDK) 包括一个称为 Visual Debugger 的工具,通过此工具,您可以在应用程序处于运行状态时对其进行检查。此工具位于 %ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgCLR.exe 中。在使用该调试器时,您可以通过在执行应用程序时逐句通过每条语句以及通过查看每个变量中的数据来准确了解应用程序的工作方式。若要使用 Visual Debugger,请打开它,然后附加到正运行 ASP.NET 应用程序页的进程。在 Internet 信息服务 (IIS) 5.0 和 5.1 版以及以 IIS 5.0 应用程序模式运行的 IIS 6.0 中,要附加调试器的进程为 ASP.NET 辅助进程 (Aspnet_wp.exe)。在以辅助进程隔离模式运行的 IIS 6.0 中,要附加到的进程为线程池进程 (W3wp.exe)。当将调试器附加到进程时,您可以查看在该进程执行过程中所有事情的进展情况,而且调试器会将在进程中执行的指令映射回原始代码,这样,您便可以看到正在执行的每一行代码。

Visual Debugger

使用 Visual Debugger 可以在运行代码时对代码进行检查,该程序中包含下列可以帮助调试应用程序的功能:

  • **断点   **断点是代码中调试器将要停止应用程序的位置,您可以使用断点查看应用程序的当前数据状态,然后逐句通过每一行代码。有关信息,请参见调试基础知识:断点

  • 单步执行   当在断点处停止后,即可逐行运行代码(称为单步执行代码)。Visual Debugger 包含许多可以帮助单步执行代码的功能,如允许指定在再次停止之前单步通过一个循环的次数的迭代器。有关更多信息,请参见代码单步执行概述

  • 数据查看   Visual Debugger 为在运行应用程序时查看和跟踪数据提供了许多不同的选项。调试器允许您在以中断模式停止应用程序时修改数据,然后使用修改过的数据继续运行应用程序。有关更多信息,请参见查看调试器中的数据

ms227556.alert_note(zh-cn,VS.90).gif说明:

Visual Studio 2005 的“编辑并继续”功能对于 Web 应用程序不可用。

有关更多信息,请参见将调试器用于网页

配置 ASP.NET Web 应用程序以进行调试

若要对 ASP.NET Web 应用程序启用调试,必须将应用程序配置为编译成调试版本。调试版本中包含调试器所需的信息,这样调试器才能单步执行代码并显示变量的内容。在应用程序的 Web.config 文件的 Compilation 节中,为调试版本配置 Web 应用程序。有关更多信息,请参见 compilation 元素(ASP.NET 设置架构)。或者,如果要只调试单个页,则可以将 debug=true 添加到要调试的页上的 @ Page 指令。有关更多信息,请参见如何:为 ASP.NET 应用程序启用调试

ms227556.alert_note(zh-cn,VS.90).gif说明:

编译为调试版本的应用程序在执行时比编译为发布版本的情形要慢得多。请确保在部署应用程序之前已关闭调试模式。另外,在调试模式下,当发生错误并且该错误可能是潜在的安全问题时,堆栈中将公开更多的信息。

本地调试和远程调试

如果正在本地运行 Web 服务器(如 IIS),则可以调试在计算机上本地运行的应用程序,这样您便可以在浏览器中查看页面。

如果不能在本地运行页面(由于不能运行 Web 服务器或者由于应用程序在本地不可用),则可以调试在另一台服务器上运行的应用程序。若要进行远程调试,必须在远程服务器上安装 Visual Studio 远程调试组件。有关更多信息,请参见如何:设置远程调试

调试权限

调试进程比执行该进程需要更多的特权。因此,除了要为调试配置应用程序外,还必须确保有足够的权限附加到进程,以便调试该进程。用户有权调试在他们自己的用户本地标识下运行的进程,但不能调试其他用户的进程。管理员可以调试任何进程。

若要在远程服务器上进行调试,需要在运行要调试的进程的计算机上具有管理员特权。有关更多信息,请参见如何:在远程服务器上调试 Web 应用程序

客户端脚本调试

除可以调试服务器端的应用程序外,Visual Debugger 还允许调试以 ECMAScript (JavaScript) 或 VBScript 编写的客户端脚本。当您使用的 Web 服务器控件使用客户端脚本时,客户端脚本调试尤为有用。

请参见

任务

如何:在远程服务器上调试 Web 应用程序

如何:为 ASP.NET 应用程序启用调试

如何:调试 Web 应用程序和 Web 服务

概念

调试基础知识:断点

参考

Visual Studio 调试器中的新增功能

其他资源

调试 ASP.NET 和 AJAX 应用程序