Próbuję zaimplementować nagłówki CacheControl z poziomu działania ASP.NET Web Api (zdaję sobie sprawę, że mogę to zrobić za pomocą innych bibliotek oraz w filtrach/procedurach, ale najpierw chcę wykonać pewne testy) .ASP.NET Web API CacheControl
śledzę trywialny przykład z książki, która wygląda następująco:
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;
Kod ten jest niemal identyczny z szeregiem innych udzielonych odpowiedzi na stackoverflow.
Jednak interfejs sieciowy w ogóle nie ustawia nagłówka kontrolki pamięci podręcznej! Jakieś pomysły?????
Kiedy patrzę na odpowiedź w skrzypku, wygląda to następująco, ponieważ kontrola pamięci podręcznej jest ustawiona na brak pamięci podręcznej.
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
Próbowałem zmieniając maxage, mustrevalidate i wartości społeczne wszystko bezskutecznie ...
Po prostu sprawdzam twój kod odpowiedzi ... działa dla mnie. Wydaje się, że problem jest gdzie indziej ... w twoim rozwiązaniu * (jakiś filtr AOP ?, atrybut?) * –
Zgadzam się z Radim, twój kod jest w porządku. Czy masz zainstalowane jakieś MessageHandlers? –
Czy kiedykolwiek znalazłeś przyczynę tego nie działa? Pracuję nad tym samym problemem, próbując zintegrować webapi ze starszym projektem MVC. – Chad