IIS Web应用程序调试的基本问题和工具

本文介绍了IIS Web应用程序调试的基本问题分类和应对策略,包括应用程序不工作、运行缓慢等常见问题。同时,详细列举了各种调试工具,如日志、客户端工具、服务端工具和离线调试工具,并提供了参考文档,帮助开发者定位和解决问题。

应用程序调试,需要有个常规的调试思路,应对各类问题最基本的调试手段是什么,不能一头雾水的上手而乱了阵脚,而且根据经验统计这些基本的步骤可以解决大多数的问题。

 

问题分类

 

第一种,应用程序不工作了。

第二种,应用程序反应很慢。


对于这样简单的描述我们一般需要进一步了解更多信息,比如

    问题最直接的表现是什么? 

    • 浏览器显示网页报错信息 
    • Web Service 调用报错信息

    是否可以重现?如何重现?

    围绕这个我们还可以问重现的频率如何,这是第一次发生么,在这之前是否有什么值得怀疑的改动?很多时候问题发生了并没有足够多的信息被记录下来。如果这个问题能够重复发生,我们就可以接下来拟定相应的数据收集和调试计划。如果能够知道如何重现,那么很多时候可以现场调试和抓取数据,可以搭建测试环境,甚至有的时候原因存在的层次可以通过如何重现问题推测出来,能够更加有效的解决问题。

    发生问题的系统环境是什么?  

    • IIS 6 
    • IIS 7 
    • IIS 7.5 
    • IIS 8

    了解问题发生的具体环境,不同的环境上面可以使用的工具不尽相同,不同的调试策略对应不同的环境。比如Failed request tracingIIS6上面就没办法使用,而只能选用ETW。负载均衡环境中如果只有单台服务器发生问题也可以对比下环境配置,很多时候区别之处隐含着问题发生的原因。

     

    如何缩小问题范围,确定问题发生层级

    • 是否是客户端问题 
    • 是否是网络原因 
    • 是否是服务器底层服务问题
      • Tcp/ip
      • Http/Https
    • 是否是 IIS 问题 
    • 是否是应用程序本身问题 
    • 是否是应用程序所依赖的后台服务问题

     

    调试工具

     

    日志 

    1. Http error log-主要用来查看http级别上面记录的出错日志 
    2. IIS log-主要用来查看IIS上面发生的请求相关信息 
    3. Event log-查看程序异常信息以及系统日志

     

    客户端工具 

    1. IE-客户端调试 
    2. Fiddler-追踪客户端http请求-Free 
    3. Httpwatch-追踪客户端http请求-Licensed 
    4. Wfetch-取代IE测试发送单独的http请求,可以自定义要发送的http头。 
    5. Network Monitor-追踪本机全部网络通讯 
    6. Wireshark-追踪本机全部网络通讯

     

    服务端工具 

    1. Etw-系统级事件追踪,可以订阅不同的windows组件内建日志 
    2. Freb-IIS7及以上引入,基于Etw,追踪服务器端整个http请求的生命周期 
    3. Adplus-可以定义规则,抓hang/crash/breakpoint      dump 
    4. DebugDiag-可以定义规则,抓各种dump,集成dump分析功能 
    5. ProcDump-主要抓程序high cpu dump 
    6. Performance Counter-系统性能计数器 
    7. Process Monitor-可以记录程序访问文件/注册表/网络请求信息及相关调用栈信息 
    8. Poolmon-监测系统paged/non-paged pool内存泄露 
    9. SQL Profiler-追踪SQL语句执行过程 
    10. SSLDiag-检测服务器端SSL配置 
    11. DelegConfig-检测服务器Kerberos配置 
    12. Certutil-检测证书各种属性 
    13. Fushion Log-记录clr加载dll日志 
    14. CLR Profiler-追踪托管堆内存对象

     

    离线调试工具 

    1. Windbg-分析dump,动态调试  
      1. Psscor-SOS更强大的托管程序调试扩展  
      2. SOS- .NETFramework自带的托管代码调试扩展  
      3. IISinfo-IIS调试扩展 
    2. Log Parser-解析Event Log, IIS log, HTTPlog等各种日志 
    3. Excel-Excel 
    4. ILSpy-根据Assembly查看托管代码 - Free 
    5. Reflector-根据Assembly查看托管代码 - Licensed

     

    参考文档

    Http API ErrorLogging

    http://support.microsoft.com/kb/820729

    HTTP Status Code inIIS 7 & 7.5

    http://support.microsoft.com/kb/943891

    Wikipedia internetprotocol suite

    http://en.wikipedia.org/wiki/Internet_protocol_suite

    Http protocol

    http://www.w3.org/Protocols/ 

    FTP protocol

    http://tools.ietf.org/html/rfc959

    SSL v3.0

    http://tools.ietf.org/html/rfc6101

    TLS v1.0

    http://tools.ietf.org/html/rfc2246 

    W3C Tutorial - HtmlXml CSS

    http://www.w3schools.com/w3c/default.asp 

    Windows development

    http://msdn.microsoft.com/en-us/library/ee663300(v=vs.85) 

    Classic ASP

    http://msdn.microsoft.com/en-us/library/aa286483.aspx 

    IIS.NET

    http://www.iis.net/ 

    ASP.NET

    http://www.asp.net/

    ASP.NET FAQs
    http://msdn.microsoft.com/en-us/library/bb981440.aspx
    Improving Web Application Security: Threats and Countermeasures
    http://msdn.microsoft.com/en-us/library/aa302335.aspx
    Security How Tos Index
    http://msdn.microsoft.com/en-us/library/ms978512.aspx
    Troubleshooting Performance Problems in SQL Server 2005
    http://technet.microsoft.com/library/Cc966540
    Performance Testing Guidance
    http://perftesting.codeplex.com/wikipage?title=How%20Tos&referringTitle=Home&ProjectName=perftesting
    Exceptional Performance
    http://developer.yahoo.com/performance/
    Improving .NET Application Performance and Scalability
    http://msdn.microsoft.com/en-us/library/ms998530.aspx
    Performance Testing Guidance for Web Applications
    http://msdn.microsoft.com/en-us/library/bb924375.aspx
    Fiddler PowerToy - Part 1: HTTP Debugging
    http://msdn.microsoft.com/en-us/library/bb250446(v=vs.85).aspx
    Fiddler PowerToy - Part 2: HTTP Performance
    http://msdn.microsoft.com/en-us/library/bb250442.aspx

     

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值