【问题标题】:Asp.net crashing in mscorlibAsp.net 在 mscorlib 中崩溃
【发布时间】:2009-06-26 21:22:03
【问题描述】:

这与another question of mine有关

在消除了明显的(或者我认为的)和最大的内存消耗(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。内存分析并没有真正给我任何有用的东西,除了我有很多字符串。性能分析也无济于事,因为函数的执行时间都很好而且很花哨。如果在分析器运行时发生此错误,它只会停止分析 - 我可能使用错误。

附言抱歉格式化,尽我所能。

【问题讨论】:

    标签: asp.net iis w3wp


    【解决方案1】:

    问题已解决 - 一位开发人员将整个数据表存储在会话中,这占用了内存(并且懒得问其他人是否可以)。

    唯一让我困惑的是它必须崩溃得如此丑陋,而不是抛出 YouIdiotYoureOverUsingSessionObjectException :)

    好吧,生活和学习......

    【讨论】:

      【解决方案2】:

      我会检查您是否在 IDisposable 实现上调用 Dispose。一个相当好的检查方法是通过 FXCop 运行代码。

      【讨论】:

        【解决方案3】:

        machine.config 中 ProcessModel 部分的内存限制属性控制回收前 ASP.NET 的最大内存使用量。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-12
          • 2014-05-15
          • 2013-04-07
          • 1970-01-01
          • 2015-04-14
          • 1970-01-01
          相关资源
          最近更新 更多