다음을 통해 공유


ASP.NET 세션 상태 공급자 구성(Windows Server AppFabric 캐싱)

Windows Server AppFabric은 ASP.NET 웹 응용 프로그램에 사용자 지정 세션 상태 공급자를 제공합니다. 이를 통해 웹 응용 프로그램은 캐시 클러스터 전체에 세션 개체를 분산시켜 확장성을 실현할 수 있습니다. AppFabric 캐싱 기능의 특성으로 인해 세션에 배치되는 개체는 직렬화할 수 있어야 합니다.

이 항목의 절차에서는 웹 응용 프로그램의 개발 환경이 이미 준비되어 있고 AppFabric 캐싱 어셈블리에 대한 참조가 설정되어 있다고 가정합니다. 자세한 내용은 캐시 클라이언트 개발 환경 준비(Windows Server AppFabric 캐싱)를 참조하십시오.

ASP.NET 웹 응용 프로그램이 AppFabric 세션 상태 공급자를 사용할 수 있으려면 응용 프로그램의 web.config 파일에 다음 요소를 추가해야 합니다.

  • configSections: 이 요소는 구성 파일에서 여는 configuration 태그 아래 첫 번째 요소여야 하며, AppFabric 캐싱 어셈블리가 작동하는 데 필요합니다.

  • dataCacheClient: 이 요소는 구성 요소의 자식으로서, 캐시 클라이언트를 구성하고 캐시 호스트를 지정하는 데 사용됩니다. 캐시 클라이언트에 대한 자세한 내용은 캐시 클라이언트 개발(Windows Server AppFabric 캐싱)을 참조하십시오.

  • sessionState: 이 요소는 system.web 요소의 자식으로서, 웹 응용 프로그램이 AppFabric을 사용하여 세션 상태를 관리하도록 지정합니다. cacheName 특성은 사용될 명명된 캐시를 지정합니다. 세션 데이터를 캐시 영역에 저장하는 경우 regionName 특성을 사용하여 영역을 지정합니다.

참고

영역에 저장된 개체는 캐시 호스트 간에 부하가 분산되지 않지만 영역이 만들어진 캐시 호스트에 위치합니다. 이러한 이유로 이 구성은 일반적으로 권장되지 않습니다. 영역은 모든 세션 개체를 단일 호스트에 배치해야 하는 특별한 요구 사항이 있을 경우에만 사용해야 합니다.

경고

캐시 호스트의 이름을 지정하는 데 사용되는 web.config 파일의 보안을 유지하는 것이 좋습니다.

웹 응용 프로그램에 대해 AppFabric 세션 상태 공급자를 구성하려면

  1. 이 단계 뒤에 나오는 예의 configSections 요소를 web.config 파일에 복사합니다. 이 요소는 configuration 태그 내의 첫 번째 요소여야 합니다.

  2. 이 단계 뒤에 나오는 예의 dataCacheClient 요소를 web.config 파일에 복사합니다. 이 요소는 configuration 요소 내부에서 configSections 요소 뒤에 추가해야 합니다.

    1. 호스트 요소의 namecachePort 특성을 사용자 환경의 캐시 서버와 일치하도록 구성합니다. 호스트 요소를 적절하게 추가하거나 제거합니다.
  3. 이 단계 뒤에 나오는 예의 sessionState 요소를 web.config 파일에 복사합니다. 이 요소는 system.web 요소의 내부에 배치되어야 합니다.

  4. 웹 응용 프로그램의 ID를 확인합니다. 웹 서버의 IIS 관리자에서 확인할 수 있습니다. 웹 응용 프로그램과 연결된 응용 프로그램 풀의 ID를 찾습니다. Grant-CacheAllowedClientAccount Windows Powershell 명령을 사용하여 이 사용자 계정에 캐시 클러스터에 대한 액세스 권한을 부여합니다.

    응용 프로그램 풀이 기본 제공 컴퓨터 계정(예: "NT Authority\Network Service")으로 실행되는 경우 해당 컴퓨터에 캐시 클러스터에 대한 액세스 권한을 부여해야 합니다. 이렇게 하려면 DOMAINNAME\MACHINENAME$을 계정으로 지정합니다. 컴퓨터 이름에 "$"가 추가되어 컴퓨터 계정임을 나타냅니다.

이 예는 캐시 클라이언트를 사용하여 NamedCache1이라는 분산 캐시에 세션 데이터를 저장하도록 ASP.NET 웹 응용 프로그램을 구성하는 방법을 보여 줍니다. 이 예의 캐시 클라이언트는 CacheServer1이라는 하나의 캐시 호스트와만 통신하도록 구성되어 있습니다.

먼저 configSections 요소를 web.config 파일에 configuration 요소의 첫 번째 요소로 추가합니다.

<!--configSections must be the FIRST element -->
<configSections>
   <!-- required to read the <dataCacheClient> element -->
   <section name="dataCacheClient"
         type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"
         allowLocation="true"
         allowDefinition="Everywhere"/>
</configSections>

그런 다음 dataCacheClient 요소를 web.config 파일의 configSections 요소 다음에 추가합니다. 여기서는 응용 프로그램의 요구를 충족하도록 캐시 클라이언트를 구성합니다. 자세한 내용은 응용 프로그램 구성 설정(Windows Server AppFabric 캐싱)을 참조하십시오.

<!-- cache client -->
<dataCacheClient> 
  <!-- cache host(s) -->
  <hosts>
    <host
       name="CacheServer1"
       cachePort="22233"/>
  </hosts>
</dataCacheClient>

configSectionsdataCacheClient 요소를 추가한 후에 sessionState 요소를 web.config 파일의 system.web 요소 내부에 추가합니다. 여기서는 웹 응용 프로그램이 세션 상태 데이터를 저장하는 데 사용할 캐시를 지정합니다.

여러 웹 응용 프로그램이 동일한 세션 상태를 공유해야 하는 경우 각 웹 응용 프로그램은 동일한 sharedId 특성 값을 사용해야 합니다. 그렇지 않으면 sharedId 특성을 지정하지 않아도 됩니다.

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <!-- specify the named cache for session data -->
    <add 
      name="AppFabricCacheSessionStoreProvider" 
      type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" 
      cacheName="NamedCache1"
      sharedId="SharedApp"/>
  </providers>
</sessionState>

완료된 후 웹 응용 프로그램의 최종 web.config 파일은 다음 예와 비슷합니다.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
  <!--configSections must be the FIRST element -->
  <configSections>
     <!-- required to read the <dataCacheClient> element -->
     <section name="dataCacheClient"
         type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"
         allowLocation="true"
         allowDefinition="Everywhere"/>
  </configSections>
  
  <!-- cache client -->
  <dataCacheClient>    
    <!-- cache host(s) -->
    <hosts>
      <host
         name="CacheServer1"
         cachePort="22233"/>
    </hosts>
  </dataCacheClient>

  <system.web>
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
      <providers>
        <!-- specify the named cache for session data -->
        <add 
          name="AppFabricCacheSessionStoreProvider" 
          type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" 
          cacheName="NamedCache1"
          sharedId="SharedApp"/>
      </providers>
    </sessionState>
  </system.web>
</configuration>

참고 항목

개념

Windows Server AppFabric 캐시 클라이언트 시작(XML)
구성 메서드(Windows Server AppFabric 캐싱) 사용
Windows Server AppFabric 캐싱 개념
캐시 클라이언트 개발(Windows Server AppFabric 캐싱)

  2011-12-05