调试和跟踪ASP.NET应用程序
ASP.NET运行故障
调试
跟踪
ASP.NET的安装
可以同过安装VS.NET来安装
分布安装
IIS
安装MDAC2.7(Microsoft Data Access Componets),可以从http://www.microsoft.com/data (5
安装.NETFroamWork
ASP.NET故障排除
没有找到程序、没有显示ASP.NET的结果或浏览器试图下载文件
不能显示页面:HTTP错误 403
找不到页面:HTTP错误404
脱机时WEB页面无效
得到服务器错误的语句
其它问题
没有找到程序、没有显示ASP.NET的结果或浏览器试图下载文件
如果试图将页面作为硬盘上的本地文件来浏览,就会遇到这样的问题。在windows Explorer中单击文件时也会遇到此问题。原因是用户试图不已通过web服务器请求的方式访问Asp.NET页面
解决方法::需要在URL中引用web服务器
如果在URL中引用也出现这个问题,一般情况下是ASP.NET的安装问题,如重新安装IIS后没有再安装ASP.NET.
不能显示页面:HTTP错误403
可能是用户没有权限来执行包含在ASP.NET中的代码
解决方法:需要修改IIS的相关设置
找不到页面:HTTP:错误404
可能是在浏览器中输入了拼写错误的URL
解决方法:输入正确的URL
提示:也有可能使文件后缀名错误,如用NotePad写的代码,错误保存为*.aspx.txt。
脱机时web页面无效
可能使用户试图请求一个页面,但当前没有与internet的连接
解决方法:单击“连接”按钮;或者调整浏览器的“脱机”设置。
得到服务器错误的语句
可能使ASP.NET代码错误
解决方法:修改错误代码
Web访问失败
Ie选项中,选择代理时,没有把“对于本地地址不使用代理服务器”选中
其它问题
可能是IIS安装不正确
杀手锏: ASPNET_regiis
C:\Documents and Settings\王康>aspnet_regiis
在单个计算机上管理 ASP.NET 的多个版本的安装和卸载的管理实用工具(1.1.4322.0)
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
用法:
aspnet_regiis.exe [-i[r] [-enable] | -u[a] | -r | -s[n] <path> | -k[n] <path
> | -lv | -lk | -c | -e[a] | -?]
-i - 安装 ASP.NET 的此版本,并更新 IIS 元数据库根处的
脚本映射和根以下的所有
脚本映射。现有的低版本脚本映射
升级到此版本。
-ir - 安装 ASP.NET 的此版本,仅注册。不
更新 IIS 中的脚本映射。
-enable - 带 -i 或 -ir 指定 -enable 时,还将
在 IIS 安全控制台(IIS 6.0 或更高版本)中启用 ASP.NET。
-s <path> - 在指定的路径以递归方式安装此版本
的脚本映射。现有的低版本脚本映射
升级到此版本。
例如 aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1
-sn <path> - 在指定的路径以非递归方式安装此版本的
脚本映射。现有的低版本脚本映射
升级到此版本。
-r - 为 IIS 元数据库根位置的此版本
以及根以下的所有脚本映射安装脚本映射。不论当前版本是什么,
所有现有的脚本映射都
更改为此版本。
-u - 卸载 ASP.NET 的此版本。到此版本的
现有脚本映射重新映射到此计算机上安装的
其余的最高 ASP.NET 版本。
-ua - 卸载计算机上的所有 ASP.NET 版本
-k <path> - 从指定的路径中以递归方式移除到任何 ASP.NET 版本的所有
脚本映射。
例如 aspnet_regiis.exe -k W3SVC/1/ROOT/SampleApp1
-kn <path> - 从指定的路径中以非递归方式移除到任何 ASP.NET 版本的所有
脚本映射。
-lv - 列出计算机上安装的所有
ASP.NET 版本(包括状态和安装路径)。
Status: Valid[ (Root)]|Invalid
-lk - 列出包含 ASP.NET 脚本映射的所有 IIS 元数据库项的所有路径
(连同版本一起)。不显示从父项
继承 ASP.NET 脚本映射的项。
-c - 将客户端脚本的此版本安装到
每个 IIS 站点目录的 aspnet_client 子目录中。
-e - 从每个 IIS 站点目录的 aspnet_client 子目录中
移除客户端脚本的此版本。
-ea - 从每个 IIS 站点目录的 aspnet_client 子目录中
移除客户端脚本的所有版本。
-? - 打印此帮助文本。
2.调试
启动调试模式
VS.NET中的调试
CLR调试器的使用
ASP.NET调试故障
需要进行ASP.NET应用程序调试的操作系统
2.1启动调试模式
应用程序级调试模式
Web.config
<compilation debug=”true”/>
页面调试模式
HTML页面中添加以下代码
<%@Page Language=”C#” Debug=”true”%>
VS.NET中Document的Debug属性设置为true
2.2 VS.NET中的调试
“调试”菜单
启动(F5)
逐语句(F11)
逐过程(F10)
新端点(Ctrl+B)
调试窗口
断点
变量
2.3 CLR调试器的使用
.NET 框架自己带的调试器
DbgCLT.exe
位于:Program files\Mircosoft Visual Studio.NET\FrameWorkSDK\GuiDebug
CLR调试器使用的4个步骤
打开要调试的文件
将调试器附加到ASP.NET进程中
设置断点
使用调试器工具来操纵应用程序
2.4 ASP.NET调试启动故障
无法在web服务器中启动调试
您没有调用服务器的权限
发送调试HTTP请求时发生服务器断错误
没有对项目进行配置以调试接受调试
未正确安装调试器
服务器不支持对ASP.NET或ATL服务器应用程序的调试
访问被拒绝。检验您是否是管理员或某个组成员
无法启动ASP.NET或ATL服务器调试
访问被拒绝
无法在WEB服务器中启用调式
未将IIS应用程序配置为使用“集成windows身份验证”。保存已经选中“身份验证方法”对话框中的“集成windows身份验证”复选框
检查IIS的“保持HTTP连接”选项。如果他是关闭的,则可能需要将其打开,再尝试调试。
您没有调式服务器的权限
原因1.:确保已启用intergrated 我indows Authentication 。可能的原因是仅为IIS的Directory安全启用了Basic
原因2:如果您在使用interfrated windows Authentication ,则需要确保您的用户帐号能够完全控制IIS的目录
发送调试HTTP请求时发生服务器端错误
Wen应用程序没有应用程序名。为此,请使用IIS MMC来检查web项目的属性
如果使用的是NTFS文件格式,则确保“aspnet”具有“wwwroot”或虚拟目录文件夹上的适当权限,才能访问和写入这些文件夹
没有对项目进行配置以接受调试
原因:在项目属性中未启用Asp.net调试
未正确安装调试器
未正确安装.NET Framework 应用程序
服务器不支持对ASP.NET或ARL服务器应用程序的调试
IIS和VS.NET安装顺序有错,用aspnet_regiis重新注册
访问被拒绝。
检验您是否是管理员或某个组成员。您可能不是该计算机上Debugger Users组的成员。将您的用户账户添加到计算机上的Debugger Users组中记可以解决此错误
您可能是Debugger Users组的成员,但是您不具有调试aspnet辅助进程的权限,因为您不是aspnet用户账户或Admininistrators组的成员。 将您的用户账户添加到机器上的Administrators组即可解决此问题
无法启松asp.net或atl服务器调试
原因1:您可能安装可IISLockdown工具。如果这样,则查找urlscan.ini文件,并将DEBUG(区分大小写)添加到[allpwverbs]部分中
原因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
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>
轻松察看多个请求的相应细节