다음을 통해 공유


캐싱 프로필 <추가>

개요

<add> 요소의 <profiles> 요소는 출력 캐싱 프로필의 컬렉션에 출력 캐싱 프로필을 추가합니다.

호환성

버전 참고
IIS 10.0 <add> 요소가 IIS 10.0에서 수정되지 않았습니다.
IIS 8.5 <add> 요소가 IIS 8.5에서 수정되지 않았습니다.
IIS 8.0 <add> 요소가 IIS 8.0에서 수정되지 않았습니다.
IIS 7.5 <add> 요소가 IIS 7.5에서 수정되지 않았습니다.
IIS 7.0 <add> 요소의 <profiles> 요소는 IIS 7.0에서 도입되었습니다.
IIS 6.0 해당 없음

설치 프로그램

<add> 요소의 <profiles> 요소는 IIS 7의 기본 설치에 포함됩니다.

방법

페이지 출력 캐싱을 구성하는 방법

  1. IIS(인터넷 정보 서비스) 관리자를 엽니다.

    • Windows Server 2012 또는 Windows Server 2012 R2를 사용하는 경우:

      • 작업 표시줄에서 서버 관리자 클릭하고 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows 8 또는 Windows 8.1 사용하는 경우:

      • Windows 키를 누른 채로 문자 X를 누른 다음 제어판 클릭합니다.
      • 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
    • Windows Server 2008 또는 Windows Server 2008 R2를 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows Vista 또는 Windows 7을 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
      • 관리 도구를 두 번 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
  2. 연결 창에서 페이지 출력 캐싱을 구성하려는 연결, 사이트, 애플리케이션 또는 디렉터리로 이동합니다.

  3. 창에서 출력 캐싱으로 스크롤한 다음 출력 캐싱을 두 번 클릭합니다.
    출력 캐싱 아이콘이 강조 표시된 홈 창의 스크린샷

  4. 작업 창에서 추가...를 클릭합니다.

  5. 캐시 규칙 추가 대화 상자에서 파일 이름 확장명 상자에 캐시할 파일 이름 확장명을 입력한 다음 사용자 모드 캐싱 옵션, 커널 모드 캐싱 옵션 또는 둘 다를 선택합니다.

  6. 캐싱에 사용할 옵션을 선택한 다음 확인을 클릭합니다.
    파일 이름 확장명 필드를 보여 주는 캐시 규칙 추가 대화 상자의 스크린샷

구성

특성

attribute Description
duration 선택적 timeSpan 특성입니다.

페이지 또는 사용자 컨트롤이 캐시되는 시간(초)을 지정합니다.

기본값은 00:00:30입니다.
extension 필수 문자열 특성입니다.

캐시하려는 파일의 파일 이름 확장명을 지정합니다.
kernelCachePolicy 선택적 열거형 특성입니다.

커널 캐싱 정책을 구성합니다.

kernelCachePolicy 특성은 다음 값 중 하나일 수 있습니다. 기본값은 DontCache입니다.
Description
DontCache 콘텐츠가 캐시되지 않습니다.

숫자 값은 입니다 0.
CacheUntilChange 콘텐츠는 콘텐츠가 변경될 때까지만 캐시됩니다.

숫자 값은 입니다 1.
CacheForTimePeriod 콘텐츠는 duration 특성에 지정된 시간 동안 캐시됩니다.

숫자 값은 입니다 2.
DisableCache 캐시가 비활성화되고 캐싱이 발생하지 않습니다.

숫자 값은 입니다 3.
location 선택적 열거형 특성입니다.

리소스에 대한 출력 캐시된 HTTP 응답의 위치를 제어하는 데 사용할 유효한 값을 지정합니다.

위치 특성은 다음과 같은 가능한 값 중 하나일 수 있습니다. 기본값은 Server입니다.
Description
Any 출력 캐시의 위치는 요청이 처음 시작된 브라우저 클라이언트, 요청에 참여한 프록시 서버나 기타 서버 또는 요청이 처리된 서버가 될 수 있습니다.

숫자 값은 입니다 0.
Client 출력 캐시가 요청이 처음 시작된 브라우저 클라이언트에 있습니다.

숫자 값은 입니다 1.
Downstream 원본 서버 대신 HTTP 1.1 캐시 가능 디바이스에 출력 캐시를 저장할 수 있습니다. 여기에는 요청한 프록시 서버와 클라이언트가 포함됩니다.

숫자 값은 입니다 2.
Server 출력 캐시가 요청이 처리된 웹 서버에 있습니다.

숫자 값은 입니다 3.
None 요청된 페이지에서는 출력 캐시를 사용할 수 없습니다.

숫자 값은 입니다 4.
ServerAndClient 출력 캐시는 원본 서버 또는 요청 클라이언트에만 저장할 수 있습니다. 프록시 서버는 응답을 캐시할 수 없습니다.

숫자 값은 입니다 5.
policy 선택적 열거형 특성입니다.

출력 캐싱 정책을 구성합니다.

정책 특성은 다음과 같은 가능한 값 중 하나일 수 있습니다. 기본값은 DontCache입니다.
Description
DontCache 콘텐츠가 캐시되지 않습니다.

숫자 값은 입니다 0.
CacheUntilChange 콘텐츠는 콘텐츠가 변경될 때까지만 캐시됩니다.

숫자 값은 입니다 1.
CacheForTimePeriod 콘텐츠는 duration 특성에 지정된 시간 동안 캐시됩니다.

숫자 값은 입니다 2.
DisableCache 캐시가 비활성화되고 캐싱이 발생하지 않습니다.

숫자 값은 입니다 3.
varyByHeaders 선택적 문자열 특성입니다.

출력 캐시를 변경하기 위해 사용되는 HTTP 헤더의 세미콜론으로 구분된 목록을 지정합니다. 이 특성을 여러 헤더로 설정하면 출력 캐시에 지정된 헤더의 각 조합에 대해 요청된 문서의 다른 버전이 포함됩니다.
varyByQueryString 선택적 문자열 특성입니다.

출력 캐시를 변경하기 위해 사용되는 문자열의 세미콜론으로 구분된 목록을 지정합니다. 기본적으로 이러한 문자열은 GET 메서드 특성으로 전송된 쿼리 문자열 값 또는 POST 메서드를 사용하여 보낸 매개 변수에 해당합니다. 이 특성을 여러 매개 변수로 설정하면 출력 캐시에 지정된 매개 변수의 각 조합에 대해 요청된 문서의 다른 버전이 포함됩니다. 가능한 값에는 none, 별표(*), 유효한 쿼리 문자열 또는 POST 매개 변수 이름이 포함됩니다.

자식 요소

없음

구성 샘플

다음 구성 예제에서는 사용자 모드 캐싱 및 커널 모드 캐싱을 사용하도록 설정하며, 둘 다 IIS 7.0에서 기본적으로 사용하도록 설정됩니다. 또한 요소에 <add><profiles> 포함된 요소를 사용하여 .asp 파일 이름 확장명을 가진 파일에 대한 출력 캐싱을 사용하도록 설정합니다. 또한 정책 특성을 사용하여 변경될 때까지 페이지를 캐시합니다. kernelCachePolicy 특성을 사용하여 커널 캐싱에 대해 동일한 작업을 수행합니다.

<configuration>
   <system.webServer>
      <caching enabled="true" enableKernelCache="true">
         <profiles>
            <add extension=".asp" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
         </profiles>
      </caching>
   </system.webServer>
</configuration>

다음 코드 예제에서는 최대 출력 캐시 크기를 1기가바이트로 설정하고 출력 캐시에 저장할 수 있는 응답의 최대 크기를 512KB로 설정합니다.

<configuration>
   <system.webServer>
      <caching enabled="true" enableKernelCache="true" maxCacheSize="1000" maxResponseSize="512000"/>
   </system.webServer>
</configuration>

샘플 코드

다음 예제에서는 .asp 파일 이름 확장명을 가진 파일에 대한 페이지 출력 캐싱을 구성하고 ASP 파일이 변경될 때까지 사용자 모드 및 커널 모드에서 캐시하도록 IIS를 구성합니다.

AppCmd.exe

appcmd.exe set config -section:system.webServer/caching /+"profiles.[extension='asp',policy='CacheUntilChange',kernelCachePolicy='CacheUntilChange']" /commit:apphost

참고

AppCmd.exe 사용하여 이러한 설정을 구성할 때 커밋 매개 변수 apphost 를 로 설정해야 합니다. 그러면 구성 설정이 ApplicationHost.config 파일의 적절한 위치 섹션에 커밋됩니다.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {
   private static void Main() {
      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection cachingSection = config.GetSection("system.webServer/caching");
         ConfigurationElementCollection profilesCollection = cachingSection.GetCollection("profiles");

         ConfigurationElement addElement = profilesCollection.CreateElement("add");
         addElement["extension"] = @"asp";
         addElement["policy"] = @"CacheUntilChange";
         addElement["kernelCachePolicy"] = @"CacheUntilChange";
         profilesCollection.AddAt(0, addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim cachingSection As ConfigurationSection = config.GetSection("system.webServer/caching")
      Dim profilesCollection As ConfigurationElementCollection = cachingSection.GetCollection("profiles")
      Dim addElement As ConfigurationElement = profilesCollection.CreateElement("add")
      addElement("extension") = "asp"
      addElement("policy") = "CacheUntilChange"
      addElement("kernelCachePolicy") = "CacheUntilChange"
      profilesCollection.AddAt(0, addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var cachingSection = adminManager.GetAdminSection("system.webServer/caching", "MACHINE/WEBROOT/APPHOST");
var profilesCollection = cachingSection.ChildElements.Item("profiles").Collection;

var addElement = profilesCollection.CreateNewElement("add");
addElement.Properties.Item("extension").Value = "asp";
addElement.Properties.Item("policy").Value = "CacheUntilChange";
addElement.Properties.Item("kernelCachePolicy").Value = "CacheUntilChange";
profilesCollection.AddElement(addElement, 0);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set cachingSection = adminManager.GetAdminSection("system.webServer/caching", "MACHINE/WEBROOT/APPHOST")
Set profilesCollection = cachingSection.ChildElements.Item("profiles").Collection

Set addElement = profilesCollection.CreateNewElement("add")
addElement.Properties.Item("extension").Value = "asp"
addElement.Properties.Item("policy").Value = "CacheUntilChange"
addElement.Properties.Item("kernelCachePolicy").Value = "CacheUntilChange"
profilesCollection.AddElement addElement, 0

adminManager.CommitChanges()