私は非常に奇妙な問題に遭遇しました。Windows 8 クライアント (C# で記述) から Server 2008 R2 で実行されている IIS Web ページ (同じく C#) に zip ファイルをアップロードすると、ファイルが破損することがあります。他のクライアント OS (Windows 7、Vista、XP) では問題を再現できませんでした。一貫性はありませんが、問題になるほど頻繁に発生します。
バイナリ diff ツールを使用して zip ファイルを調べたところ、置換が明確なパターンであることがわかりました。
交換品の一例です。パターンは、ファイルの異なるインスタンス間で一貫しています。上が元のファイルで、下がサーバー側に保存されたアップロードファイルです。
すべての変更のパターンは同じです。最初のパターンの 8 バイト ブロック:
0 0 C 0 フリー
ここで、C
は何らかの文字で、その後に 8 バイトの変更されていないセクションが続きます。
次に、2 つの同一の 8 バイト ブロックに分割された 16 バイトの変更されたセクションがあります。
パターンはランダムにするには一貫性が高すぎますが、何が問題を引き起こしているのかわかりません。どこから始めればよいかさえわかりません。
コードは Windows 7 と XP で何年も実行されており、明らかな問題はありません。