我想使用輸出緩存與WCF數據服務,雖然沒有什麼特別的內置來支持緩存,但有一個OnStartProcessingRequest方法允許我掛鉤並設置緩存的請求使用正常的ASP.NET機制。控制ASP.NET輸出緩存內存使用
但是我擔心工作進程會因爲內存消耗過多而被循環使用,如果大量響應被緩存的話。有沒有辦法指定ASP.NET輸出緩存的上限,以便如果超過此限制,緩存中的項目將被丟棄?
我已經看過caching的配置設置,但我從文檔中得到了這樣的印象,即通過Cache對象進行顯式緩存,因爲有一個單獨的outputCacheSettings,它沒有與內存相關的屬性。
這是Scott Hanselman's post的代碼片段,它顯示了我如何設置請求的緩存能力。
protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
base.OnStartProcessingRequest(args);
//Cache for a minute based on querystring
HttpContext context = HttpContext.Current;
HttpCachePolicy c = HttpContext.Current.Response.Cache;
c.SetCacheability(HttpCacheability.ServerAndPrivate);
c.SetExpires(HttpContext.Current.Timestamp.AddSeconds(60));
c.VaryByHeaders["Accept"] = true;
c.VaryByHeaders["Accept-Charset"] = true;
c.VaryByHeaders["Accept-Encoding"] = true;
c.VaryByParams["*"] = true;
}