如何在ASP.Net网站中找到死锁

时间:2012-07-19 09:04:20

标签: c# asp.net iis-7.5 c#-2.0 asp.net-2.0

我正在使用.Net 2.0,我的网站似乎在某个时期达到了死锁状态。它将停止工作,直到我回收应用程序池或更改web.config文件中的内容。我认为死锁导致了这个问题。

我想知道是否有任何工具可以调试/检查网站以找到可能导致死锁的代码。

现在我不得不将回收间隔设置为10分钟,这真的很糟糕,但这是解决问题的唯一方法,网站上有很多代码,我需要找到问题所在。如果我使用DOS攻击工具,是否可以找到导致此问题的页面/代码块?如果可以的话,测试它的最佳工具是什么?

干杯!

修改 我试图检查事件日志并发现以下警告。我不知道现在是否会继续挖掘问题。 例外信息:     异常类型:HttpException     异常消息:请求超时。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我会将visual studio附加到IIS,并在发生死锁时中断调试器。然后,您可以检查正在运行的线程的调用堆栈。

代码项目有一个nice article on how to do IIS remote debugging

当然,您可以使用本地IIS和本地Visual Studio .NET设置测试计算机,无需远程调试即可完成此操作。

答案 2 :(得分:1)

如果您使用“失败的请求跟踪”'并且它会产生一个很好的输出,然后告诉你导致错误的原因,直到模块级别。这将为您提供进入故障的第一步。

在iis.net上阅读本文 - > Troubleshooting Failed Requests Using Tracing in IIS 7