C# 使用离子压缩时压缩失败

C# 使用离子压缩时压缩失败,c#,zip,zipfile,dotnetzip,C#,Zip,Zipfile,Dotnetzip,我使用的是最新版本的ionic zip版本1.9.1.8。我已经设置了ionic zipParallelDeflateThreshold=0。在过去的两个月里,压缩机制工作得非常好。突然,它停止了工作。压缩线程挂起,ionic zip刚刚创建了tmp文件,但未能创建zip文件。即使文件很小,我也可以很容易地重现这个问题 我对这个问题的分析如下 问题在于最新版本的ionic zip,在本例中,ionic zip在创建zip文件时挂起。我们注意到,其他几个使用此dll的用户也在他们的站点中报告了此类

我使用的是最新版本的ionic zip版本1.9.1.8。我已经设置了ionic zip
ParallelDeflateThreshold=0
。在过去的两个月里,压缩机制工作得非常好。突然,它停止了工作。压缩线程挂起,ionic zip刚刚创建了tmp文件,但未能创建zip文件。即使文件很小,我也可以很容易地重现这个问题

我对这个问题的分析如下

问题在于最新版本的ionic zip,在本例中,ionic zip在创建zip文件时挂起。我们注意到,其他几个使用此dll的用户也在他们的站点中报告了此类错误。请参阅。此问题将通过禁用ionic zip的
ParallelThreshold
属性来解决,但它会延迟大型日志文件的性能,因为它在单线程而不是多线程模式下工作


现在通过将
ParallelDeflateThreshold
property设置为默认值解决了这个问题。但是我找不到这个问题的确切原因。为什么压缩会突然失败?没有机器更改。

我也面临着类似的问题,较小的zip文件小于20-25MB,需要3-4秒,但任何大于此的文件都需要无限的时间。代码从未完成执行

我开始担心使用DotNetZip库可能是一个错误的决定,因为我们使用的zipfiles高达500MB

在保存zip文件的行之前,我添加了:
zip.paralleledeflatethreshold=-1


这样可以确保永远不会创建单独的线程。看起来,一旦zip文件超过某个阈值,DotNetZip就会不断创建大量线程,导致获取最终zip文件的延迟非常大。

上的某个人可能会提供帮助。奇怪的是,DotNetZip在大文件上显示出这样的行为。无论如何,我已经将这个属性设置为默认值(-1,如果我没有错的话),现在它可以工作了。非常感谢。