ASP.NET의 캐시 구성
업데이트: 2007년 11월
ASP.NET에서는 페이지 출력 캐싱 및 캐시 API를 구성할 수 있는 다양한 옵션을 제공합니다. 페이지 응답이 처리된 후 페이지 출력 캐시를 사용하여 페이지 응답을 캐시하고 캐시 API를 사용하여 응용 프로그램 데이터를 프로그래밍 방식으로 캐시합니다. 자세한 내용은 ASP.NET 캐싱 개요를 참조하십시오.
페이지 출력 캐시 구성
다음과 같은 위치에서 페이지 출력 캐싱을 구성할 수 있습니다.
구성 파일 Machine.config 파일(컴퓨터의 모든 웹 응용 프로그램에 대한 설정용)과 응용 프로그램별 Web.config 파일(단일 응용 프로그램에 대한 설정용)을 포함한 모든 구성 파일에서 응용 프로그램 구성 계층 구조에 페이지 출력 캐시 설정을 구성할 수 있습니다.
개별 페이지 개별 페이지에 선언적으로 또는 프로그래밍 방식으로 캐싱 옵션을 설정할 수 있습니다. 또한 구성 파일에서 만든 캐시 프로필을 개별 페이지에 적용할 수도 있습니다.
사용자 정의 컨트롤 개별 사용자 정의 컨트롤에 선언적으로 또는 프로그래밍 방식으로 캐싱을 설정할 수 있습니다. 이 방법을 사용하면 다른 경우에는 캐시되지 않는 페이지 내용을 쉽게 캐시할 수 있습니다.
Web.config 캐시 구성 설정
Web.config 파일에는 페이지 출력 캐시에 대해 OutputCacheSection 및 OutputCacheSettingsSection이라는 두 개의 최상위 구성 섹션이 있습니다.
OutputCacheSection 섹션은 페이지 출력 캐싱이 사용되는지 여부와 같은 응용 프로그램 범위 설정을 구성하는 데 사용됩니다. 예를 들어 Web.config 파일의 OutputCacheSection에 enableOutputCache="false"를 추가하여 전체 응용 프로그램에 대해 페이지 출력 캐싱을 사용하지 않도록 설정할 수 있습니다. 구성 파일의 설정은 개별 페이지의 캐시 설정보다 우선 순위가 높으므로 예제 설정에서는 출력 캐시가 사용되지 않습니다.
OutputCacheSettingsSection은 개별 페이지에서 사용할 수 있는 프로필과 종속성을 구성하는 데 사용됩니다. 예를 들어 다음 코드는 60초 동안 구현 페이지를 캐시할 OutputCacheProfile(CacheProfile1)을 만듭니다.
<outputCacheSettings>
<outputCacheProfiles>
<add name="CacheProfile1" duration="60" />
</outputCacheProfiles>
</outputCacheSettings>
Machine.config 캐시 구성 설정
Machine.config 파일의 구성 섹션은 Web.config 파일의 구성 섹션과 같지만 Machine.config 파일의 구성 설정을 모든 수준의 개별 응용 프로그램으로 재정의할 수 없도록 잠글 수 있다는 점이 다릅니다. 호스터가 개별 응용 프로그램에서 캐시 구성을 수정하지 않도록 하려는 공유 호스팅 시나리오의 경우를 예로 들 수 있습니다. 자세한 내용은 방법: ASP.NET 구성 설정 잠금을 참조하십시오.
페이지 캐시 구성 설정
구성 파일에 정의된 캐시 프로필을 적용하여 개별 페이지에 캐싱을 구성할 수 있습니다. 또는 @ OutputCache 지시문을 사용하거나 페이지의 클래스 정의에 특성을 설정하여 개별 캐시 속성을 구성할 수 있습니다. 자세한 내용은 @ OutputCache 및 페이지의 캐시 가능성 설정을 참조하십시오.
사용자 정의 컨트롤 캐시 구성 설정
사용자 정의 컨트롤 파일에 @ OutputCache 지시문을 설정하거나 컨트롤의 클래스 정의에 PartialCachingAttribute 특성을 설정하여 사용자 정의 컨트롤 캐싱을 구성할 수 있습니다. 자세한 내용은 ASP.NET 페이지의 부분 캐싱을 참조하십시오.
캐시 API 구성 설정
Web.config 파일에 응용 프로그램의 캐시 API를 구성할 수 있습니다. 페이지 출력 캐시와 마찬가지로 응용 프로그램 호스터에서는 Machine.config 파일에 구성 속성을 설정하고 모든 응용 프로그램에 대해 캐시 구성 설정을 잠글 수 있습니다. 응용 프로그램 캐시 API는 CacheSection에 구성됩니다. 예를 들어 다음과 같은 구성 요소를 사용하여 항목 만료를 해제할 수 있습니다.
<cache disableExpiration="true" />
구성 파일의 CacheSection에서 DisableExpiration과 DisableMemoryCollection 같은 특성에 값을 할당하여 다른 응용 프로그램 캐시 API 구성 설정을 지정할 수도 있습니다.