内存不足异常离子 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);;
我正在下载一个大的 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);;