現在、私は私のDBからファイル(画像、PDFの、など)を返すために、次のアクションを持っている:パフォーマンスのためにFileContentResultをキャッシュするにはどうすればよいですか?
//
// GET: /FileManager/GetFile/ID
[OutputCache(Duration = 600, VaryByParam = "ID")]
public ActionResult GetFile(int ID)
{
FileService svc = new FileService(new SqlFileRepository(base.ConnectionString));
KsisOnline.Data.File result = svc.GetFileByID(ID);
return File(result.Data, result.MimeType, result.UploadFileName);
}
私はOutputCache
属性を使用していますが、私はそれを正しく使用するか、どのようにしていた場合知りませんこの目的のために最適化してください。
コードが立っているので、私はFirefox(3)ではキャッシュ機能を得るように見えますが、IE(7)では表示されません。何らかの理由で、IEは毎回DBからイメージを要求しています(これは明らかに悪名高いものです)、それを修正する方法はわかりません。確かIEは標準を適切にサポートしていませんが、おそらく私はまだいくつかの推奨されているキャッシュ規則に従っていません。私は本当にこれでいくつかの助けに感謝したいので、私は最小DBのヒットとキャッシュクロスブラウザをサポートしています。
EDIT: アクションで上記のコードを参照したり、ブラウザ/ツールを使用してそれを自分のプロファイルに、this linkを参照してください。
可能重複[中FileResultで304のステータスを返す方法ASP.NET MVC RC1](http://stackoverflow.com/questions/602104/how-return-304-status-with-fileresult-in-asp-net-mvc-rc1) –