关于异常的疑难解答:System.OutOfMemoryException

更新:2007 年 11 月

当尝试分配内存失败时,会引发 OutOfMemoryException 异常。

相关提示

  • 如果要创建数组,请确保其大小正确。
    有关更多信息,Visual Basic 的用户可以参见 数组 (Visual Basic)

    有关更多信息,C# 的用户可以参见 数组(C# 编程指南)

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

备注

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

  • 将大型数据集读入内存中。

  • 创建过多的缓存条目。

  • 上载或下载大文件。

  • 在分析文件时过多地使用正则表达式或字符串。

  • 过多的视图状态。

  • 会话状态中有过多的数据或者会话过多。

当对 COM 对象调用一个方法,并且该方法返回包含安全数组(大小不固定的数组)的用户定义类型时,可能引发此异常,并附带一条额外的消息“存储空间不足,无法完成此操作”。这是因为 .NET Framework 无法封送带有安全数组类型的结构字段。

请参见

任务

如何:使用异常助手查找有关异常的更多信息

如何:声明数组变量

参考

OutOfMemoryException