离子 zip 抛出内存异常

本文关键字:内存 异常 zip 离子 | 更新日期: 2023-09-27 18:36:51

我使用ionic zip(版本-1.9.1.8)来压缩一些文件。我通常有总计为 2 到 3 GB 的大文件......这个离子zip在我的系统中工作正常,但是当我在另一台用户机器(ONSITE)中使用它时...此离子 zip 引发异常,如下所示。两个系统的配置相同。

Exception details:
******************
[6/11/2012 01:21:38:812]
 System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at Ionic.Zip.ZipEntry._WriteEntryData(Stream s)
   at Ionic.Zip.ZipEntry.Write(Stream s)
   at Ionic.Zip.ZipFile.Save()
   at Ionic.Zip.ZipFile.Save(String fileName)
   at MyCode.SaveZipFile()
[6/11/2012 01:21:38:828]
System.NullReferenceException: Object reference not set to an instance of an object.
   at Ionic.Zlib.ParallelDeflateOutputStream._Flush(Boolean lastInput)
   at Ionic.Zlib.ParallelDeflateOutputStream.Close()
   at Ionic.Zlib.ParallelDeflateOutputStream.Dispose()
   at Ionic.Zip.ZipFile.Dispose(Boolean disposeManagedResources)
   at Ionic.Zip.ZipFile.Dispose()
   at Mycode.SaveZipFile()
   at Mycode.SaveLogs()

有人可以帮助我找到此类问题的原因..??

提前致谢

离子 zip 抛出内存异常

你需要显示代码。如果你的应用正在压缩到内存流中,它将容易受到内存不足情况的影响。这将是您的应用程序中的问题,而不是库中的问题。

另外 - 我从堆栈跟踪中看到它正在使用并行 deflater。 这会用运行时换取内存。如果您有内存问题,您可以禁用并行压缩,并使用更少的内存。

在代码中通过如下所示的操作来执行此操作:

 zip.ParallelDeflateThreshold = -1;

另请参阅有关此功能的文档:http://cheeso.members.winisp.net/DotNetZipHelp/html/0988edb5-1d59-2875-8e77-ad195601cbce.htm