asp.net – .NET Ionic.Zip模块查杀驱动器空间

前端之家收集整理的这篇文章主要介绍了asp.net – .NET Ionic.Zip模块查杀驱动器空间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下设置:

> Win2008服务器
> Ionic.zip参考模块
>用于构建zip文件的单独驱动器
> .NET 4.0

Web应用程序即时构建zip包,并允许客户端下载包.

到目前为止,这个系统运行得非常好.

最近我们添加了一些较大的文件(2GB到11GB),这些文件在下载到客户端之前都需要包装在一个包中.最初我把这个系统设置为在C上发生:(一个错误).马上,特别是对于较大的文件,我开始得到“磁盘空间不足”的错误.我做的第一件事就是将系统移动到100GB单独驱动器(K :)上.既然这些文件已在Intranet上发布到生产环境,我仍然会收到这些错误.

>我有一个任务安排每晚清理驱动器,所以即使在100GB我不应该得到错误
> C:和K:都有足够的空间
>我还不知道它是C :(一个未知的临时文件夹??)还是K:它正在填满
>更新 – 查看事件日志,它是K:正在填满,但是当我检查它时,它不满……所以我假设临时文件问题……或者??

有没有人可以对这些问题有所了解或建议如何排除故障?

编辑 – – – – – – – – – – – –

我认为压缩方法可能有些东西我正在调用文件大小.我现在看到其他错误看起来像:

Compressed or Uncompressed size,or offset exceeds the maximum value. Consider setting the UseZip64WhenSaving property on the ZipFile instance.

我尝试添加行zip.CompressionMethod = Zip64Option.AsNecessary认为zip64将是必要的,但后来我得到了错误Unsupported压缩方法.我不确定从这里可以获得这些新信息.我以为ZipDotNet会处理这一切.

现在用户正在尝试下载此文件,这一点变得越来越紧迫.我现在正在修补补丁作为一种解决方法.

更多编辑——————–

当我意识到普通拉链的尺寸限制为4GB时,有一种DUH时刻. Zip64的大小限制更大.

我在我的代码添加了zip.UseZip64WhenSaving = True行,这似乎解决了这个问题.到目前为止,没有问题.

解决方法

解决方案围绕着不关注zip文件大小限制.

使用DotNetZip压缩大尺寸文件时,您将在asp.net编码中收到如下错误

>磁盘上没有足够的空间
>压缩或未压缩的大小或偏移超过最大值.考虑在ZipFile实例上设置UseZip64WhenSaving属性

当您看到这些错误时,通过添加以下行来更改您的asp代码可能是个好主意:

[yourZipReference].UseZip64WhenSaving = Zip64Option.Always

这将更改您的代码以zip64格式保存文件,因此您可能希望在进行此更改之前进行文件大小检查.

还有另一条线:

[yourZipReference].CompressionMethod = Zip64Option.AsNecessary

这将导致模块使用适合于该情况的zip压缩方法,但我还没有测试过这个.

猜你在找的asp.Net相关文章