关于异常的疑难解答:System.OutOfMemoryException
更新:2007 年 11 月
当尝试分配内存失败时,会引发 OutOfMemoryException 异常。
相关提示
如果要创建数组,请确保其大小正确。
有关更多信息,Visual Basic 的用户可以参见 数组 (Visual Basic)。有关更多信息,C# 的用户可以参见 数组(C# 编程指南)。
确保有足够的内存用于内部用途和新的托管对象。
如果您正在 .NET Compact Framework 上进行编程,当没有足够的内存可用于内部用途或新的托管对象时,公共语言运行库会引发此异常。要避免此异常,应避免编写占用 64KB 或更多内存的大方法。
备注
过多的托管内存使用量通常由以下因素造成:
将大型数据集读入内存中。
创建过多的缓存条目。
上载或下载大文件。
在分析文件时过多地使用正则表达式或字符串。
过多的视图状态。
会话状态中有过多的数据或者会话过多。
当对 COM 对象调用一个方法,并且该方法返回包含安全数组(大小不固定的数组)的用户定义类型时,可能引发此异常,并附带一条额外的消息“存储空间不足,无法完成此操作”。这是因为 .NET Framework 无法封送带有安全数组类型的结构字段。