我有一個數據庫,它將.png圖像存儲爲sql「image」類型。我有一些代碼將這些圖像作爲byte []檢索,並通過.Net中的FileContentResult對象將它們發送到頁面。性能是此應用程序的關鍵,並且圖像必須儘快檢索和顯示。我的問題是,可以通過將數據庫中的字節流傳遞給瀏覽器來更快地執行此操作,而不是在任何時候將整個字節數組存儲在內存中。如果這是可行的和值得的,我該怎麼做?使用流在C#中使用mssql獲取圖像
這裏是我到目前爲止的代碼:
// Get: /Image/Get/5
public FileResult Get(int id)
{
Response.Cache.SetExpires(DateTime.Now.AddSeconds(300));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
// Get full size image by PageId.
return base.File(page.getFullsizeImage(id), "image/png");
}
而且
public byte[] getFullsizeImage(int pageId)
{
return (from t in tPage
// Filter on pageId.
where t.PageId == pageId
select t.Image).Single().ToArray();
}
感謝您的幫助!
好的。那真的是我想要的。我將在IIS緩存上做一些測試,看看它是否改善了處理。感謝所有的答覆。 – shaw2thefloor 2010-09-13 13:20:37
如果你這樣做,我會建議你在高負載下做一些非常徹底的測試。 ASP.NET緩存很好,但是@Aliostad已經提到,它確實很滿。考慮使用分佈式的進程外高速緩存,如NCache,Memcached或Velocity,最好在專用的高速緩存服務器場中使用。 – 2010-09-13 13:29:21