-2

我使用 ionic zip (version-1.9.1.8) 来压缩一些文件..我通常有总和为 2 到 3 GB 的大文件...这个 ionic zip 在我的系统中工作正常,但是当我在另一台用户机器上使用它时(ONSITE )...这个 ionic 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()

有人可以帮我找到这些问题的原因..?

提前致谢

4

1 回答 1

4

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

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

在您的代码中通过以下方式执行此操作:

 zip.ParallelDeflateThreshold = -1;

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

于 2012-06-13T17:26:34.983 回答