2010-07-02 5 views
2

필자는 일련의 요청 수명 동안 유지하고자하는 작은 상태 개체를 사용하는 작은 ASHX 처리기를 작성했습니다. 나는 핸들러가 객체를 서버 측 캐시 (HttpContext.Current.Cache)에두고 ProcessRequest의 시작 부분에서 그것을 가져온다.ASP.NET 서버 측 캐시 수명?

개체가 캐시에 얼마나 오래 머물 것으로 예상 할 수 있습니까? 핸들러 인스턴스가오고 갈 것이라고 예상하므로 요청 자체에 의해 결정될 때까지 더 이상 필요하지 않을 때까지 모든 것을 유지해야합니다. 그러나 캐시에없는 상태로 인해 새 상태 개체를 만들어야 할 때 처리기에서 응용 프로그램 로그에 쓰기를 처리하면 2-3 번 생성됩니다.

답변

2

add the item to the cache 일 때 평생과 우선 순위를 지정할 수 있습니다.

항목이 요청 된 전체 기간 동안 캐시에 남아 있다고 보장 할 수 없습니다. 예를 들어 메모리가 부족하면 캐시가 제거 될 수 있지만 항목의 우선 순위를 높게 설정하면 캐시에 남아있을 가능성이 높아집니다.

+0

캐시 []를 사용하여 항목을 추가하고있었습니다. 고맙습니다. – redman

+1

'Cache []'를 사용하여 항목을 추가하면 기본 수명 정책과 이전 정책이 사용됩니다. 나는 그들이 무엇인지 모르겠지만, 메모리 압박을 느끼지 않으면 (그리고/또는 당신의 appdomain이 어떤 이유로 재시작되지 않는다면) 당신의 아이템이 캐시에서 정기적으로 빠져 나오지 않아야한다고 확신한다. – LukeH