1

私は非常に奇妙な問題に遭遇しました。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 で何年も実行されており、明らかな問題はありません。

4

2 に答える 2

0

唯一の推測は、トランスポート レベルで何かが起こっているということです。問題を診断する方法: 異なるクライアント/コード/コンポーネントを使用して同じファイルをアップロードし、問題が解決するかどうかを確認します。ファイルの実際の変更は、おそらく無関係です。転送にチャンクエンコードか圧縮(またはその両方)が使われていて、クライアントやサーバーのエラーでデータが壊れていると思います。チャンク エンコーディングと圧縮が使用されていないことを確認できる場合は、別のコンポーネントがこれに対処します。

于 2013-04-24T17:30:54.237 に答える