我下载了一个大型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上也是如此。
任何帮助都非常受欢迎,因为我没有想法。
感谢。
答案 0 :(得分:1)
您需要避免将文件存储在内存中。应用程序对内存使用量有1.2GB的限制。然后64bit应用程序有2GB +我相信。
我不是100%肯定,但这可能会有效:
using ZipFile;
new ZipFile(memoryStream).ExtractToDirectory(csvFile, extractPath);;