我有一个很大的(如许多页面,对象......)asp.net网络应用程序,有时将服务器固定在100%,我无从谈论。有没有办法检测哪个页面出错?
我知道它的asp.net而不是sql,因为任务管理器显示w3wp.exe是罪魁祸首。
有没有这样做的工具?或分析.net网络应用程序?
答案 0 :(得分:2)
ASP.Net Tracing就是答案。
http://www.asp101.com/articles/robert/tracing/default.asp
http://www.asp.net/general/videos/how-do-i-implement-tracing-in-an-aspnet-web-site
http://www.asp101.com/articles/robert/tracing/images/trace_information.jpg
答案 1 :(得分:2)
查看此红门产品:http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/
但掌握这一点并非易事。
答案 2 :(得分:0)
如果您可以在测试服务器或您自己的计算机上重复此问题,则可以使用分析器(Visual Studio 2010中包含的分析器或任何其他分析器)来确定发生了什么。
如果问题仅发生在生产中,那么在问题发生时analyze it using DebugDiag最好不要执行转储过程。
Tess Ferrandez在她的博客上有很多关于如何在她的博客上对应用程序行为进行低级分析的信息,包括如何使用DebugDiag。
答案 3 :(得分:-1)
您不会偶然在您的网络应用中使用GC.Collect()
吗?对大型应用程序过度调用GC.Collect()
将导致其在扫描内存以查找一次性对象时达到峰值100%。如果您快速连续致电GC.Collect()
,那么当内存使用率很高时,您可能会持续100%使用cpu。