2011-06-14 3 views
2

WCF REST 서비스에서 캐싱을 사용하도록 설정하면 이후의 동일한 코드에 대한 호출에서 기본 코드가 실행되지 않습니다. 그러나 캐싱 공급자에 연결하여 요청을 확인한 다음 로그에 기록 할 수있는 방법이 있는지 궁금합니다. 이는 분석 목적이나 API 사용을 추적하기위한 것입니다.WCF 캐시 공급자에 연결할 수 있습니까?

답변

3

WCF REST 캐싱은 HttpApplication.ResolveRequestCacheHttpApplication.UpdateRequestCache 이벤트를 처리하도록 등록 된 ASP.NET 캐싱 모듈에 의해 수행됩니다. ResolveRequestCache (가장 적합한 것은 BeginRequest이 될 것임) 및 HttpContext.Current.Request (직접 HTTP 요청을 읽기 위해 InputStream 속성을 사용할 수 있음)에서 직접 액세스 요청 전에 이벤트를 처리하면됩니다. 이러한 이벤트는 일반적으로 Global.asax 파일에서 처리됩니다.

캐싱은 여러 수준에서 발생할 수 있습니다. 클라이언트는 자체 캐시에 데이터를 저장할 수 있으며 프록시 서버는 데이터를 캐시 할 수 있습니다. 따라서 캐시 된 응답을 사용하는 모든 요청이 서버에 부딪 힐 필요는 없습니다. 캐시 프로필에 Location을 설정하여 데이터를 캐시 할 수있는 위치를 제어 할 수 있습니다.

+0

의미가 있습니다. 캐시 조회가 HttpApplication' 클래스의 이벤트 전에 발생했는지 확실하지 않았습니다. 이제 알았어. 나는 그것을 시도 할 것이다. 콘텐츠가 서버의 업스트림에 캐시 된 경우 잘 처리되지만 서버에 도달하는 모든 것을 캡처 할 수 있습니다. 감사. –

관련 문제