ユーザーが SAS を使用して Windows Azure ストレージ プールからファイルをダウンロードできるようにします (このディスカッションを参照)。SAS が構築され、次にRequest.Redirect(targetURL)
クライアントのブラウザをリダイレクトしてファイルをダウンロードするために が呼び出されます。
これは、Chrome を使用してファイル (拡張子 .dp で終わる独自のバイナリ ファイル) をダウンロードすることでうまく機能します。
ただし、Internet Explorer 9 で (同じ URL を使用して) 同じファイルをダウンロードすると、ファイルの拡張子が .zip に変更されます (元の .dp が削除されます)。まだ IE9 を使用しているユーザーもいます :(
ブロブのコンテンツタイプを確認しましたapplication/octet-stream
(したがって、正しいはずです)。
IE9 がファイルの拡張子を変更するのはなぜですか? また、これを防ぐにはどうすればよいですか? Azure に .dp ファイルをそのまま (MIME タイプに関して) 残すように指示する必要がありますか? その場合、どのように構成できますか?
編集:ウェブサーバーへの追加の負荷を避けるために、blob.openread()/response.write() ではなくリダイレクトを使用したいと本当に思っています。
更新 1
Fiddler を使用して、ダウンロード リクエストに対するサーバーの応答を確認しました。コンテンツ タイプが正しいことは明らかです。
HTTP/1.1 200 OK
Content-Length: 60783
Content-Type: application/octet-stream
Last-Modified: Fri, 17 Aug 2012 13:25:24 GMT
ETag: 0x8CF4XXXE4DD2184
Server: Blob Service Version 1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 21XXXXX-9e42-4ca8-a425-e84269d9f104
Date: Fri, 17 Aug 2012 16:49:05 GMT
サーバーのコンテンツ ペイロードは
PK����nAQ������p����
* FIDDLER: RawDisplay が 128 文字で切り捨てられました。切り捨てを無効にするには、右クリックします。*
IE は「PK」を PKZIP と解釈し、それが ZIP ファイルであると認識しますか?
これを無効にするにはどうすればよいですか (クライアント側で) - cf. 以下の最初のコメントはトリックではありませんでした...
敬具、
ロビー・デ・サッター