私は次の設定をしています:
- Win2008 サーバー
- Ionic.zip 参照モジュール
- zip ファイルをビルドするための別のドライブ
- .NET 4.0
Web アプリは、オンザフライで zip パッケージをビルドし、クライアントがパッケージをダウンロードできるようにします。
このシステムは素晴らしく機能してきました...今まで。
最近、クライアントにダウンロードする前にすべてをパッケージにまとめる必要があるいくつかの大きなファイル (2GB から 11GB) を追加しました。もともと、私はこのシステムをすべて C: 上で実行するようにセットアップしていました (間違い)。すぐに、特に大きなサイズのファイルの場合、「ディスクに十分なスペースがありません」というエラーが発生し始めました。私が最初にしたことは、システムを 100GB の別のドライブ (K:) で動作するように移動することでした。これらのファイルがイントラネット上で本番環境にリリースされた今でも、これらのエラーが発生します。
- 毎晩ドライブをクリーンアップするタスクがスケジュールされているため、100 GB であってもエラーは発生しないはずです
- C: と K: の両方に十分な余裕があります
- いっぱいになっているのが C: (不明な一時フォルダー??) なのか、K: なのかはまだわかりません。
- 更新 - イベント ログを見ると、いっぱいになっているのは K: ですが、チェックするといっぱいではありません...だから、一時ファイルの問題を想定しています...または??
これに光を当てたり、何が起こっているかのトラブルシューティングについてアドバイスしたりできる人はいますか?
編集 - - - - - - - - - - - -
私がファイルサイズを求めている圧縮方法には何かがあるのではないかと思います。次のような他のエラーが表示されるようになりました。
圧縮または非圧縮サイズ、またはオフセットが最大値を超えています。ZipFile インスタンスに UseZip64WhenSaving プロパティを設定することを検討してください。
zip.CompressionMethod = Zip64Option.AsNecessary
zip64が必要になると思って一行追加してみたところ、エラーになってしまいましたUnsupported compression method
。この新しい情報でどこに行けばいいのかわかりません。ZipDotNet がこれをすべて処理してくれると思いました。
ユーザーがこのファイルをダウンロードしようとしているため、これは緊急になっています。現在、回避策としてパッチに取り組んでいます。
もっと編集--------------------
通常のzipには4GBのサイズ制限があることに気付いたとき、一種の当たり前の瞬間がありました. Zip64 には、はるかに大きなサイズ制限があります。
コードに行を追加したzip.UseZip64WhenSaving = True
ところ、問題が修正されたようです。これまでのところ、問題はありません。