0

For some reason my application pool keeps crashing once in a couple of days. The biggest problem is that there are no logs about errors or warnings in my administrative events about this pool. (there are several warnings in other pools, but it is only this pool that keeps crashing). Changes I make can only be tested if they worked if I wait a couple of days.

I tried to bring my code back to the stage where the problems did not occur, but this does not seem to help.

Most crashes happen when the site is not very busy, although not that inactive that IIS shuts it down for inactivity.

Windows server 2008 R2 (SP 1), IIS Build 7.5.76, Umbraco, Sql server 2008

IIS logs: only showing some recycling of the pool (once every 3 hours) Rapid fail detection: disabled

Where should I start with solving this problem?

4

3 回答 3

1

WER (Windows Error Reporting) should have made crash dumps for you unless disabled. The default location for the crash reports is c:\ProgramData\Microsoft\Windows\WER\ReportQueue\ , but as far as I can remember, the Windows event log entry for the crash contains the full path for the dump file (Application event log). Pop it into your VS and check what went wrong.

You can also try installing DebugDiag, but personally I highly do NOT recommend it on a production server as it screws up the WER configuration for its own purposes in an unreversible way affecting other applications too.

于 2012-11-06T21:35:29.487 回答
1

标准方法是开始制作跟踪日志文件。在应用程序的每个关键点写入详细的日志消息 - 请求开始时、请求结束时、中间某处、执行 DB 操作时等。日志文件在一天结束时可能会占用千兆字节,但您可以暂时负担得起。然后,当它再次崩溃时,检查日志文件以查看它在崩溃之前所做的最后一件事是什么。如果没有足够的详细信息,请添加更多日志记录并重复。

于 2012-10-31T09:34:42.133 回答
0

我首先在不同的应用程序池上运行风险应用程序,以尽量减少影响。
有一个 iss 属性可以在 x 分钟内发生 5 个错误后阻止应用程序池重新启动。
您可以尝试增加此设置,它应该让您了解这种情况发生的频率以及一旦出错是否会出错。
如果它是 wcf 服务,您可以启用跟踪日志(记录很多,甚至可能是您的错误)。

至于要看的地方,我建议检查堆栈溢出和多线程代码。
这两种情况都可能导致事件日志不包含任何信息的情况。

于 2012-10-31T09:39:48.237 回答