内存不足异常离子 Zip 提取

Out of Memory Exception Ionic Zip Extraction

我正在下载一个大的 zip 文件并尝试将其内容(一个 csv 文件)提取到内存流中。

这适用于较小的文件,但对于较大的文件(我的当前为 16mb),我得到 OutOfMemoryException。 所以此时我有了由 zip 文件组成的内存流。

 using (ZipFile zip = ZipFile.Read(memoryStream))
                {
                     zip.ParallelDeflateThreshold = -1;
                     zip[csvKey].Extract(csvFile);
                }

我正在使用 Ionic 库来管理 zip。通过阅读其他 stackover 流程​​帖子,我将 ParallelDeflateThreshold 添加到 -1。但我仍然遇到同样的问题。

我目前使用的是 16gb RAM i7 机器,因此内存应该不是问题。 运行 在 IIS Express 上,但同样发生在常规 IIS 上。

非常感谢任何帮助,因为我 运行 没有想法。

谢谢。

您将希望避免将文件存储在内存中。应用程序有 1.2GB 的内存使用限制。然后我相信64位应用程序有2GB+。

我不是 100% 确定,但这可能有效:

using ZipFile;
new ZipFile(memoryStream).ExtractToDirectory(csvFile, extractPath);;