4

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

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

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

干杯!

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

4

3 回答 3

2
于 2012-07-19T09:06:43.477 回答
1

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

阅读 iis.net 上的这篇文章 →在 IIS 7 中使用跟踪对失败的请求进行故障排除

于 2012-07-19T15:33:14.730 回答
0

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

Code Project 有一篇关于如何进行 IIS 远程调试的好文章

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

于 2012-07-19T09:09:59.800 回答