2009-11-09 3 views
2

내가 작업하고있는 웹 사이트는 HttpContext.Current.Application 저장소를 광범위하게 사용하여 데이터베이스의 조회 데이터를 캐시합니다. (이 데이터를 많이하지 않습니다 - 목록 등 아래로 드롭에 사용되는 단순한 일이 ..)ASP.Net 웹 사이트에서 Application Store가 얼마나 자주 새로 고쳐 집니까?

이 방법에 대한 몇 가지 질문 :

  • 이 저장소 (의 수명을 가지고 있는가 사용자 세션이 20 분 후에 시간 초과되는 것과 같은 방식으로 응용 프로그램 저장소 시간 초과가 발생합니까?)

  • IIS의 이벤트 또는 웹 사이트와 동일한 응용 프로그램 도메인의 이벤트가 응용 프로그램 저장소를 새로 고 칩니 까? (나는 web.config 파일의 값을 변경하면 저장소가 다시 생성된다는 것을 이해합니다.)이 작업은 다른 작업입니까?

  • 더 좋은 방법이 있습니까?

답변

1

Web.config로 인해 응용 프로그램이 다시 시작되고 HttpContext.Current.Application을 지우는 동작입니다.

web.config를 터치하고 IIS에서 수동으로 작업하는 응용 프로그램을 다시 시작하면 IIS에서 응용 프로그램 풀을 재활용하여 해당 데이터를 "지 웁니다".

마음에 그것은 여전히 ​​가장 기억 상실 인 메모리 저장소로 사용할 수 있습니다. 따라서 더 많은 이름이 필요할 경우 데이터를 디스크 나 데이터베이스에 저장해야합니다.

우리는 거의 사용하지 않아도됩니다. (거의 수행하지 않습니다.) 대개 가장 좋은 방법은 응용 프로그램 캐시를 사용하고 필요에 따라 리소스를 재 구축하는 것입니다. 서버가 높은 메모리 스트레스를받지 않는 한 캐시는 삭제되지 않습니다 (만료가 설정되지 않음).

+0

IIS의 응용 프로그램 풀이 재생되는 이유는 무엇입니까? 특정 유휴 시간이 경과하면 자동으로이 작업이 수행됩니까? – Dexter

+0

구성 할 수 있으며 사용하는 IIS 버전에 따라 다릅니다. 자세한 내용은 http://blogs.msdn.com/david.wang/archive/2006/01/26/Thoughts-on-Application-Pool-Recycling-and-Application-Availability.aspx를 참조하십시오. –

0

내 이해는 응용 프로그램 수명 동안 또는 응용 프로그램 풀이 재설정 될 때까지 사용할 수 있습니다.

IIS의 응용 프로그램/세션 풀이 여러 가지 이유로 재활용되는 좋은 이유가 있습니다 (here).

IIS와 web.config 모두에서 응용 프로그램 저장소의 작동을 변경할 수있는 설정이 있습니다.

관련 문제