在消除了明显的(或者我认为的)和最大的内存消耗(asp.net 缓存中的图像)之后,并没有太大变化。我们在这个网站上使用企业库异常处理(不知道为什么,但我们这样做了)并且这些异常不会被记录。仅作记录,服务器有 4 GB 内存,所以我认为物理内存不是问题。
根据事件日志,会发生以下情况:
首先我从一个页面得到这个(很少从同一页面两次):
Exception information:
Exception type: Exception
Exception message: mscorlib - Exception of type 'System.OutOfMemoryException' was thrown.
然后这个:
Description:
An unhandled exception occurred and the process was terminated.
Application ID: /LM/W3SVC/672222825/Root
Process ID: 1544
Exception: System.OutOfMemoryException
Message: Exception of type 'System.OutOfMemoryException' was thrown.
StackTrace: at System.Threading.ExecutionContext.CreateCopy()
at System.Threading._TimerCallback.PerformTimerCallback(Object state)
我的问题是:如何使用分析器查看导致崩溃的原因?我尝试了两个分析器 - 来自 JetBrains 的 .net 内存分析器和 dotTrace。内存分析并没有真正给我任何有用的东西,除了我有很多字符串。性能分析也无济于事,因为函数的执行时间都很好而且很花哨。如果在分析器运行时发生此错误,它只会停止分析 - 我可能使用错误。
ps对不起格式化,尽我所能。