Ich versuche, CacheControl-Header aus einer ASP.NET Web API-Aktion zu implementieren (ich weiß, ich kann dies mit anderen Bibliotheken und in Filtern/Handlern tun, aber zuerst einige Tests durchführen) .ASP.NET-Web-API CacheControl
Ich verfolge ein triviales Beispiel aus einem Buch, das wie folgt aussieht:
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;
Dieser Code fast identisch mit einer Reihe von anderen Antworten auf Stackoverflow vorgesehen ist.
Die Web-API setzt jedoch den Cache-Steuerkopf überhaupt nicht! Irgendwelche Ideen?????
Wenn ich mir die Antwort in fiddler anschaue sieht es wie folgt aus, da die Cache-Kontrolle auf No-Cache gesetzt ist.
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
Ich habe versucht, die maxage, mustrevalidate und öffentliche Werte alles ohne Erfolg zu ändern ...
Ich überprüfe einfach Ihren Antwortcode ... arbeitet für mich. Es scheint, dass das Problem an anderer Stelle ... in Ihrer Lösung * (einige AOP-Filter ?, Attribut?) * –
Ich stimme Radim, ist Ihr Code in Ordnung. Hast du irgendwelche MessageHandler installiert? –
Haben Sie jemals den Grund dafür gefunden nicht funktioniert? Ich stoße auf dasselbe Problem, indem ich versuche, webapi in ein altes MVC-Projekt zu integrieren. – Chad