asp.net 引发类型为“System.OutOfMemoryException”的异常通常发生在IIS进程获取不到内存时。

临时解决方法是:

回收IIS的应用程序池。

如果要比较好的解决办法是:

1、检查系统代码,修复内存失控和发生泄漏的地方,如:可能的死循环,大量浪费内存的代码。

2、优化应用程序池的回收配置,限制内存使用的百分比。

如果要创建数组,请确保其大小正确。

确保有足够的内存用于内部用途和新的托管对象。

如果您正在 .NET Compact Framework 上进行编程,当没有足够的内存可用于内部用途或新的托管对象时,公共语言运行库会引发此异常。要避免此异常,应避免编写占用 64KB 或更多内存的大方法。

过多的托管内存使用量通常由以下因素造成:

  1. 将大型数据集读入内存中。
  2. 创建过多的缓存条目。
  3. 上载或下载大文件。
  4. 在分析文件时过多地使用正则表达式或字符串。
  5. 过多的视图状态。
  6. 会话状态中有过多的数据或者会话过多。
  7. 当对 COM 对象调用一个方法,并且该方法返回包含安全数组(大小不固定的数组)的用户定义类型时,可能引发此异常,并附带一条额外的消息“存储空间不足,无法完成此操作”。这是因为 .NET Framework 无法封送带有安全数组类型的结构字段。

可以参考:

http://www.cnblogs.com/emanlee/archive/2009/06/25/1511198.html

http://outofmemory.cn/c/dotNet-outOfMemoryException

posted on 2015-06-19 10:37  Mack.Meng  阅读(1753)  评论(0编辑  收藏  举报