簡體   English   中英

ASP.NET Web API操作緩存

[英]ASP.NET Web API action caching

我試圖在ApiControler緩存操作的結果,由於某種原因,我沒有看到緩存的內容。 我不完全了解MVC緩存的工作原理,但是我假設是否已緩存了動作響應,而不應該一直調用它,但是如果可用,它應該只輸出緩存。

行動:

    [HttpGet]
    public HttpResponseMessage NetworkStatusSummary()
    {
        // getting networkStatuses
        HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, networkStatuses);

        response.Headers.CacheControl = new CacheControlHeaderValue {MaxAge = new TimeSpan(0, 10, 0), Public = true};

        return response;
    }

我在這里做錯了什么?

好的,內置Web API似乎沒什么花哨的。 因此想出了:

    private IList<NetworkStatus> NetworkStatuses
    {
        get
        {
            IList<NetworkStatus> networkStatuses;
            Cache cache = HttpContext.Current.Cache;

            if (cache[NETWORK_STATUSES_CACHE_KEY] == null)
            {
                networkStatuses = m_networkOwnerService.GetNetworkStatuses();
                cache.Add(NETWORK_STATUSES_CACHE_KEY, networkStatuses, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 5, 0), CacheItemPriority.Default, null);
            }
            else
            {
                networkStatuses = (IList<NetworkStatus>) cache[NETWORK_STATUSES_CACHE_KEY];
            }

            return networkStatuses;
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM