I am trying to implement CacheControl headers from an ASP.NET Web Api action (I understand that I can do this with other libraries, as well as in filters / handlers, but first I want to do some tests).
I follow a trivial example from a book that looks like this:
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;
This code is almost identical to a number of other answers provided in stackoverflow.
However, the web api does not set the cache control header at all! Any ideas ?????
When I look at the answer in a script, it looks like this, since you can configure cache cache without a 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
I tried changing maxage, mustrevalidate and public values ββwithout any benefit ...
source share