caching 요소에 대한 outputCache 요소(ASP.NET 설정 스키마)
[이 설명서는 미리 보기 전용이며, 이후 릴리스에서 변경될 수 있습니다. 비어 있는 항목은 자리 표시자로 포함됩니다.]
응용 프로그램 수준의 출력 캐시 설정을 지정합니다.
<outputCache enableOutputCache="true|false"
enableFragmentCache="true|false"
sendCacheControlHeader="true|false"
omitVaryStar="true|false"
defaultProvider="AspNetInternalProvider">
</outputCache>
특성 및 요소
다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.
특성
특성 |
설명 |
---|---|
enableOutputCache |
선택적 Boolean 특성입니다. 페이지 출력 캐시를 사용하거나 사용하지 않도록 설정합니다. 페이지 출력 캐시를 사용하지 않으면 프로그래밍 방식 또는 선언적 설정에 관계없이 페이지가 캐시되지 않습니다. 기본값은 true으로, |
enableFragmentCache |
선택적 Boolean 특성입니다. 응용 프로그램 부분 캐시를 사용하거나 사용하지 않도록 설정합니다. 응용 프로그램 부분 캐시를 사용하지 않으면 @ OutputCache 지시문이나 사용된 캐싱 프로필에 관계없이 페이지가 캐시되지 않습니다. 업스트림 프록시 서버나 클라이언트 브라우저에서 페이지 출력 캐시를 시도하지 않도록 지시하는 cache-control 헤더가 포함됩니다. 기본값은 false으로, |
sendCacheControlHeader |
선택적 Boolean 특성입니다. 출력 캐시 모듈에서 cache-control:private 헤더를 기본적으로 보내는지 여부를 나타내는 값을 가져오거나 설정합니다. 기본값은 false으로, |
omitVaryStar |
선택적 Boolean 특성입니다. 응답에 HTTP "Vary: *" 헤더를 보내거나 보내지 않도록 설정합니다. 기본 설정인 false를 사용하면 출력 캐시된 페이지에 대해 "Vary: *" 헤더를 보냅니다. 기본값은 false으로, |
defaultProvider |
선택적 문자열 특성입니다. 기본 출력 캐시 공급자를 가져오거나 설정합니다. 기본값은 "AspNetInternalProvider"입니다. 이 캐시는 ASP.NET에서 제공하는 메모리 내 캐시입니다. |
자식 요소
요소 |
설명 |
---|---|
providers |
사용자 지정 출력 캐시 공급자를 구성하는 데 사용할 수 있는 선택적 자식 요소입니다. |
부모 요소
요소 |
설명 |
---|---|
configuration |
공용 언어 런타임 및 .NET Framework 응용 프로그램에서 사용하는 모든 구성 파일의 필수 루트 요소입니다. |
system.web |
구성 파일에 있는 ASP.NET 구성 설정의 루트 요소를 지정합니다. ASP.NET 웹 응용 프로그램을 구성하고 응용 프로그램의 동작 방법을 제어하는 구성 요소를 포함합니다. |
caching |
웹 응용 프로그램에 대한 캐시 설정을 구성합니다. |
설명
기본 구성
다음의 기본 outputCache 요소는 컴퓨터 구성 파일이나 루트 Web.config 파일에 명시적으로 구성되어 있지는 않지만 .NET Framework 버전 2.0의 응용 프로그램에서 반환하는 기본 구성입니다.
<outputCache enableOutputCache = "true"
enableFragmentCache = "true"
sendCacheControlHeader = "true"
omitVaryStar = "false"
defaultProvider="AspNetInternalProvider">
</outputCache>
다음 예제에서는 ASP.NET 응용 프로그램에서 출력 캐시를 사용하지 않도록 설정하는 방법을 보여 줍니다.
<outputCache enableOutputCache="false" />
확장 가능한 출력 캐싱
ASP.NET에서는 출력 캐시를 확장하고 하나 이상의 사용자 지정 출력 캐시 공급자를 구성할 수 있습니다. 출력 캐시 공급자는 모든 저장 메커니즘을 사용하여 HTML 콘텐츠를 유지할 수 있습니다. 이러한 저장 옵션에는 로컬 또는 원격 디스크, 클라우드 저장소 및 분산 캐시 엔진이 포함될 수 있습니다.
출력 캐시 공급자 확장성을 통해 웹 사이트에 대한 더욱 적극적이고 지능적인 출력 캐싱 전략을 디자인할 수 있습니다. 예를 들어 사이트의 "상위 10개" 페이지는 메모리에 캐시하고, 트래픽이 적은 페이지는 디스크에 캐시하는 출력 캐시 공급자를 만들 수 있습니다. 또는 렌더링된 페이지의 모든 변경 조합을 캐시하되, 분산 캐시를 사용하여 메모리 사용이 프런트 엔드 웹 서버에서 오프로드되도록 할 수도 있습니다.
사용자 지정 출력 캐시 공급자를 OutputCacheProvider 형식에서 파생되는 클래스로 만듭니다. 그런 다음 outputCache 요소의 providers 하위 섹션을 사용하여 Web.config 파일에서 공급자를 구성할 수 있습니다.
기본적으로 ASP.NET에서 모든 HTTP 응답, 렌더링된 페이지 및 컨트롤은 이전 예제(defaultProvider 특성이 AspNetInternalProvider로 설정됨)에 있는 메모리 내 출력 캐시를 사용합니다. defaultProvider에 다른 공급자 이름을 지정하여 웹 응용 프로그램에 사용되는 기본 출력 캐시 공급자를 변경할 수 있습니다.
또한 개별 컨트롤과 개별 요청에 대해 서로 다른 출력 캐시 공급자를 선택할 수 있습니다. 웹 사용자 정의 컨트롤마다 다른 출력 캐시 공급자를 지정하는 가장 쉬운 방법은 다음 예제와 같이 페이지 또는 컨트롤 지시문에서 새 providerName 특성을 사용하여 선언적으로 선택하는 것입니다.
<%@ OutputCache Duration="60" VaryByParam="None"
providerName="DiskCache" %>
HTTP 요청에 다른 출력 캐시 공급자를 지정하고 Global.asax 파일에서 새 GetOutputCacheProviderName 메서드를 재정의하여 특정 요청에 사용할 공급자를 프로그래밍 방식으로 지정할 수 있습니다.
참고 항목
작업
Walkthrough: Using Output Caching to Enhance Web Site Performance
How to: Lock ASP.NET Configuration Settings
참조
개념
Securing ASP.NET Configuration
ASP.NET Configuration Scenarios