我想從一個ASP.NET Web Api操作中實現CacheControl頭(我意識到我可以使用其他庫,並在過濾器/處理程序中執行此操作,但希望先執行一些測試) 。ASP.NET Web API CacheControl
我下面從一本書,看起來像一個簡單的例子:
var response = Request.CreateResponse<IEnumerable<string>>(HttpStatusCode.OK,emails);
response.Headers.CacheControl = new CacheControlHeaderValue();
response.Headers.CacheControl.MaxAge = TimeSpan.FromHours(1);
response.Headers.CacheControl.MustRevalidate = false;
response.Headers.CacheControl.Public = true;
return response;
這段代碼幾乎是相同的數字形式提供的計算器其他的答案。
但是,web api根本沒有設置緩存控制標題!有任何想法嗎?????
當我查看fiddler中的響應時,它看起來像下面這樣,因爲您可以將cache-control設置爲no-cache。
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-MiniProfiler-Ids: ["b7bfde10-e8d3-455d-b40d-2f33eb285023"]
X-Powered-By: ASP.NET
Date: Sat, 25 May 2013 11:54:35 GMT
Content-Length: 24
我試圖改變的最大生存週期,mustrevalidate和公共價值都無濟於事......
我只是檢查你的響應代碼...爲我工作。這似乎是問題在別處......在你的解決方案*(一些AOP過濾器?,屬性?)* –
我同意Radim,你的代碼是好的。你有沒有安裝任何MessageHandlers? –
你有沒有找到這個不工作的原因?我遇到了同樣的問題,試圖將webapi整合到遺留的MVC項目中。 – Chad