내가 ASP.NET 웹 API 액션 내에서 CacheControl 헤더를 구현하기 위해 노력하고 (나는이 사용하는 다른 라이브러리를 할 수있는 실현 및 필터/처리기가 있지만, 우선 몇 가지 테스트를 할에서) . 이 코드는 유래에서 제공되는 다른 답변의 수와 거의 동일ASP.NET 웹 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;
:
나는처럼 보이는 책에서 사소한 예를 다음입니다.
그러나 웹 API는 캐시 제어 헤더를 전혀 설정하지 않습니다! 어떤 아이디어 ????? 내가 피들러의 반응을 볼 때 당신은 캐시 제어 노 캐시로 설정되어 수
그것은 다음과 같습니다. 나는 모든 아무 소용에있는 maxage, mustrevalidate 공공 값을 변경 시도
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
...
응답 코드를 확인하면됩니다. 그 문제는 다른 곳에서 ... 솔루션 (일부 AOP 필터, 속성?)에있는 것 같습니다. * –
Radim에 동의합니다. 코드가 정상입니다. MessageHandler가 설치되어 있습니까? –
이것이 작동하지 않는 이유를 찾았습니까? webapi를 레거시 MVC 프로젝트에 통합하려고 할 때 같은 문제가 발생합니다. – Chad