调试.NET程序OutOfMemoryException(转载)

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

原文地址:http://blog.csdn.net/directionofear/article/details/8009427

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

问题分类

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

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

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

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

浏览器显示网页报错信息

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级别上面记录的出错日志 IIS log-主要用来查看IIS上面发生的请求相关信息 Event log-查看程序异常信息以及系统日志

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

服务端工具 Etw-系统级事件追踪,可以订阅不同的windows组件内建日志 Freb-IIS7及以上引入,基于Etw,追踪服务器端整个http请求的生命周期 Adplus-可以定义规则,抓hang/crash/breakpoint

dump DebugDiag-可以定义规则,抓各种dump,集成dump分析功能 PRocDump-主要抓程序high

cpu dump Performance Counter-系统性能计数器 Process Monitor-可以记录程序访问文件/注册表/网络请求信息及相关调用栈信息 Poolmon-监测系统paged/non-paged

pool内存泄露 SQL Profiler-追踪SQL语句执行过程 SSLDiag-检测服务器端SSL配置 DelegConfig-检测服务器Kerberos配置 Certutil-检测证书各种属性 Fushion Log-记录clr加载dll日志 CLR Profiler-追踪托管堆内存对象

离线调试工具 Windbg-分析dump,动态调试 Psscor-比SOS更强大的托管程序调试扩展 SOS-.NETFramework自带的托管代码调试扩展 IISinfo-IIS调试扩展 Log Parser-解析Event

Log, IIS log, HTTPlog等各种日志 Excel-Excel ILSpy-根据Assembly查看托管代码- Free 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 - HtmlxmlCSS

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 WebapplicationSecurity: 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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航