第十六讲 调试和跟踪ASP.NET应用程序

*摘要
。ASP.NET运行故障
。调试
。跟踪

*ASP.NET故障排除
不能显示页面:HTTP错误403
。可能是用户没有权限来执行包含在ASP.NET中的代码。
。解决方法:需要修改IIS的相关设置。

找不到页面:HTTP错误404
。可能是在浏览器中输入了拼写错误的URL。
。解决法:输入正确的URL。
提示:
。也有可能是文件后缀名错误,如用NotePad写的代码,错误保存为*.aspx.txt

脱机时Web页面无效
。可能是用户试图请求一个页面,但当前没有与Internet的连接。
。解决方法:单击“连接”按钮;或者调整浏览器的“脱机”设置。

得到服务器错误的错误语句
。可能是ASP.NET代码错误。
。解决方法:修改错误代码。

Web访问失败
。IE选项中,选择代理时,没有把“对于本地地址不使用代理服务器”选中

ASP.NET故障排除
其他问题:
。可能是IIS安装不正确。
杀手锏:ASPNET_regiis -i

*需要进行ASP.NET应用程序调试的操作系统
。本地:
-Microsoft Windows@2000 Professional
-Windows 2000 Server
-Windows 2000 Advanced Server
-Windows XP Professional
-Windows Server 2003
。行程Server:
-Windows 2000 Professional
-Windows 2000 Server
-Windows 2000 Advanced Server
-Windows XP Professional
-Windows Server 2003
。行程Client:
-Windows 2000(any edition)
-Windows XP(any edition)

2.1启动调试模式
。应用程序级调试模式
-Web.config
-<compliation debug="true" />
。页面调试模式
-HTML页面中添加以下代码:
<%@ Page Language="C#" Debug="true" %>
-VS.NET中Document的Debug属性设置为true

2.2VS.NET中的调试
。“调试”菜单
-启动(F5)
-逐语句(F11)
-逐过程(F10)
-新断点(Ctrl+B)
。调试窗口
-断点
-变量

2.3 CLR调试器的使用
。.NET框架自己带的调试器
。DbgCLR.exe
。位于:PRogram files\Mirosoft Visual Studio.NET\FrameWorkSDK\GuiDebug

CLR调试器使用的4个步骤
。打开要调试的文件
。将调试器附加到ASP.NET进程中
。设置断点
。使用调试器工具来操纵应用程序

*在远程计算机上调试ASP.NET Web应用程序
。调试器在远程使用方法与在本地使用相同
。远程调试的必需条件:
-必需安装Visual Sudio remote debugging组件
-用户必需是Debugger User组或Administrator
-必需具有运行ASP.NET计算机的管理员权限
-User DCOM(not TCP/IP) for c/c++

2.4 ASP.NET调试启动故障
无法在Web服务器中启调试
。末将IIS应用程序配置为使用“集成 Windows身份验证”。确保已选中“身份验证方法”对话框中的“集成Windows身份验证复选框”
。检查IIS的“保持HTTP连接”选项。如果它是关闭的,则可能需要将其打开,再尝试调试。

您没有调试服务器的权限。
。原因1:确保已启用Integrated Windows Authentication可能的原因是仅为IIS的Directory安全启用了Basic authentication
。原因2:如果您在使用Integrated Windows Authentication,则需要确保您的用户账户能够完全控件IIS的目录中。

发送调试HTTP请求时发生服务端错误
。Web应用程序没有应用程序名。为此,请使用IIS MMC 来检查Web项目的属性,确保Web项目具有应用程序名。
。如果使用的是NTFS文件格式,则确保"ASPNET"具有"wwwroot"或虚拟目录文件夹上的适当权限,才能访问和写入这些文件夹。
。没有对项目进行配置以接受调试。
-原因:在项目属性中末启用ASP.NET调试
。末正确安装调试器
-末正确安装.NET Framework应用程序。
。服务器不支持对ASP.NET或ATL服务器应用程序的调试。
-IIS和VS.NET安装顺序有错,用ASPNET_Regiis重新注册。

访问被拒绝。
。检验您是否是管理员或某个组成员。您可能不是该计算机上Debugger Users组的成员。将您的用户账户添加到计算机上的Debugger

Users组中即可解决此错误。
。您可能是Debugger Users组的成员,但是您不具有调试ASPNET辅助进程的权限,因为您不是ASPNET用户账户或Administrator组的成员

。将您的用户账户添加到机器上的Administrator组即可解决此问题。

无法启动ASP.NET或ATL服务器调试。
。原因1:您可能安装了IIS Locakdown工具。如果这样,则查找urlscan.ini文件,并将DEBUG(区分大小写)添加到[allowverbs]部分中。
。原因2:如果将域控件器用作服务器,并且项目是使用机器名(非完整域名)创建的,则可能需要将项目的URL更改为完整域名。
。原因3:如果将IIS设置为使用专用IP(例如Web site identification,可以在IIS MMC的IIS 设置中找到这一选项),则可能看到这条

错误消息。
。原因4:Web.config文件的中的值太大。默认单位是千字节而非字节,因此如果更改此数字,使用了错误的单位,则可能导致调试总是

3、跟踪
。在页面级使用跟踪
。写到跟踪日志、
。应用程序级跟踪

*试用Response跟踪
。新建Web应用程序
。添加用户名称,密码文本框,登录按钮
。为登录按钮添加事件。
。在事件中用Response.Write来跟踪值是否正确


*跟踪
。便利的来展示应用程序ASP.NET Web 的信息
。两种方式跟踪:
-Page-level跟踪
。在浏览器中输出
。不影响页面性能
-Application-level跟踪
。许可一次察看多个请求
。自动为程序中的所有页开启page-level

2.1在页面级使用跟踪
。在HTML页添加以下代码
<%@ Page Trace="true" %>
。VS.NET中的设置
-Document的Trace属性设置为true

*跟踪输出
。请求内容:包含关于页面请求的信息
。跟踪信息:显示实际的跟踪信息
。控制树:显示页面使用的不同控件
。Cookies集合:显示页面中的所有Cookie
。标题集合:显示客户端传送到服务器端的连同请求的各种HTTP标题
。服务器变量:显示服务器变量集合的所有成员。

2.2写到跟踪日志
。Trace.Write;
。Trace.Warn:红色显示
注:
。Trace对象对应的类为TraceContext
。Trace.IsEnabled属性可以得到跟踪的当肖状态

Application-level跟踪日志
。为所有页开启page-level跟踪
。收集统计状态信息及控件层次
。开启跟踪需按以下方试修改web.config文件:
<configuration>
 <system.web>
  <trace enabled="true" />
 </system.web>
</configuration>

*支持的属性
value:Description
enabled:设置true|false,用于标记跟踪是否开启(默认为关闭)
pageOutput:设置true|false,用于标记跟踪信息是否在页面被显示,包括在每个页面直接输出,或是通过trace.axd文件输出。(默认

为关闭)
requestLimit:跟请求在服务器端的存储数量(defalut is 10)
traceMode:设置SortByTime|SortByCategory,指示显示排序方式(default is SortByTime)
localOnly:设置true|false,指示跟踪是否仅对本地用户或所有用户(defalut is true)

 

原文地址:https://www.cnblogs.com/iceberg2008/p/1422068.html