我正在使用.Net 2.0,我的网站似乎在某个时期达到了死锁状态。它将停止工作,直到我回收应用程序池或更改web.config文件中的内容。我认为死锁导致了这个问题。
我想知道是否有任何工具可以调试/检查网站以找到可能导致死锁的代码。
现在我不得不将回收间隔设置为10分钟,这真的很糟糕,但这是解决问题的唯一方法,网站上有很多代码,我需要找到问题所在。如果我使用DOS攻击工具,是否可以找到导致此问题的页面/代码块?如果可以的话,测试它的最佳工具是什么?
干杯!
修改 我试图检查事件日志并发现以下警告。我不知道现在是否会继续挖掘问题。 例外信息: 异常类型:HttpException 异常消息:请求超时。
答案 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