2012-08-16 536 views
7

最新のionic zipバージョン1.9.1.8を使用しています。ionic zipのプロパティを設定しましたParallelDeflateThreshold = 0。過去2ヶ月間、ジッパー機構が完全に機能していました。突然、これが機能しなくなりました。ジッパー糸がちょうどハングアップし、イオンジップがtmpファイルを作成し、zipファイルを作成できませんでした。小さなファイルサイズでも簡単にこの問題を再現できました。ionic zipを使用すると圧縮が失敗する

問題は、zipファイルを作成しながら、この場合にはイオン性ジッパーが絞首刑に、イオンジップの最新バージョンとあったが、次のように

この問題のための私の分析があります。私たちは、このDLLを使用している他のいくつかのユーザーも、自分のサイトでこのようなエラーを報告していることに気付きました。 the linkを参照してください。この問題はイオン性ジップのParallelThresholdプロパティを無効にすることで解決しますが、マルチスレッドモードではなくシングルスレッドで動作するため、大きなログファイルのパフォーマンスが遅くなります。

ParallelDeflateThresholdプロパティをデフォルト値に設定することで問題は解決しました。しかし、この問題の正確な原因を見つけることができませんでした。なぜジッパーが突然失敗するのですか?マシンの変更はありませんでした。

+0

http://dotnetzip.codeplex.com/の誰かが役立つかもしれません。 – Surfbutler

答えて

15

私は同様の問題に直面していました。小さなzipファイルが20-25MB未満で、3-4秒かかっていましたが、それ以上のものは無限の時間を費やしていました。コードは決して実行を終了しません。

私は500MBまでのzipファイルを扱うので、DotNetZipライブラリを使用するのは間違った決定だったかもしれないと心配しました。

は、zipファイルが保存されている行の前に、私が追加: zip.ParallelDeflateThreshold = -1;

これは、別のスレッドが作成されることはありませんことを確認します。 zipファイルが特定のしきい値を過ぎると、DotNetZipは多数のスレッドを作成し続け、最終的なzipファイルを取得する際に非常に大きな遅延を引き起こします。

+0

DotNetZipが大きなファイルでこのような動作をするのは奇妙です。とにかく私はこのプロパティをデフォルト値に設定しています(-1の場合は間違っています)。ありがとうございます – Techy

+0

あなたはようこそです。 – Kimi

関連する問題