要求に応じてファイルを提供することを目的とする WCF REST サービスがあります。
WebOperationContext.Current.OutgoingResponse.Headers.Clear();
WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Disposition", "attachment;filename=" + fileNameWithExtension);
WebOperationContext.Current.OutgoingResponse.ContentType = contentType;
return new MemoryStream(file.Data);
これをダウンロードすると、IE8 を除くすべてのブラウザーで機能します。ダウンロード リンクをクリックすると、新しいタブが開き、自動的に閉じます。たとえば、Chromeはファイル名を適切に認識できますが、IE8はファイル名を認識しないことを発見しました-ヘッダーからファイル名を無視していたように. これにアプローチする方法を知っている人はいますか?
edit* リンクから URL を抽出して手動で IE8 のアドレス バーに配置すると、最初の試行ではダウンロードに失敗しますが、2 回目の試行ではすぐにダウンロードできることがわかりました。Fiddler で何が起こっているかを見ると、最初の試行で次のヘッダーが表示されることがわかります。
Set-Cookie: ASP.NET_SessionId=rhyk5nxw3fmrkjonsjknntuw; path=/; HttpOnly
2 回目にダウンロードしようとすると、同じヘッダーがありません。