应用程序调试,需要有个常规的调试思路,应对各类问题最基本的调试手段是什么,不能一头雾水的上手而乱了阵脚,而且根据经验统计这些基本的步骤可以解决大多数的问题。
问题分类
第一种,应用程序不工作了。
第二种,应用程序反应很慢。
对于这样简单的描述我们一般需要进一步了解更多信息,比如
问题最直接的表现是什么?
-
浏览器显示网页报错信息
-
Web Service 调用报错信息
是否可以重现?如何重现?
围绕这个我们还可以问重现的频率如何,这是第一次发生么,在这之前是否有什么值得怀疑的改动?很多时候问题发生了并没有足够多的信息被记录下来。如果这个问题能够重复发生,我们就可以接下来拟定相应的数据收集和调试计划。如果能够知道如何重现,那么很多时候可以现场调试和抓取数据,可以搭建测试环境,甚至有的时候原因存在的层次可以通过如何重现问题推测出来,能够更加有效的解决问题。
发生问题的系统环境是什么?
-
IIS 6
-
IIS 7
-
IIS 7.5
-
IIS 8
了解问题发生的具体环境,不同的环境上面可以使用的工具不尽相同,不同的调试策略对应不同的环境。比如Failed request tracing在IIS6上面就没办法使用,而只能选用ETW。负载均衡环境中如果只有单台服务器发生问题也可以对比下环境配置,很多时候区别之处隐含着问题发生的原因。
如何缩小问题范围,确定问题发生层级
-
是否是客户端问题
-
是否是网络原因
-
是否是服务器底层服务问题
-
Tcp/ip
-
Http/Https
-
-
是否是 IIS 问题
-
是否是应用程序本身问题
- 是否是应用程序所依赖的后台服务问题
调试工具
日志
- Http error log-主要用来查看http级别上面记录的出错日志