방법: Azure Managed Cache Service 대한 캐시 클라이언트 구성

중요

모든 새 개발에서는 Azure Redis Cache를 사용하는 것이 좋습니다. Azure Cache 제품을 선택하는 방법에 대한 현재 설명서 및 지침 은 나에게 적합한 Azure Cache 제품을 참조하세요.

Managed Cache Service 필요한 어셈블리 참조 및 구성을 추가하는 NuGet 패키지를 제공하여 캐시 클라이언트를 쉽게 구성할 수 있습니다. 또한 캐시 NuGet 패키지는 캐시 세션 상태 및 페이지 출력 캐시 공급자를 사용할 수 있도록 웹 프로젝트에 대한 web.config에서 주석 처리된 섹션을 제공합니다. 이 항목에서는 캐시 NuGet 패키지를 사용하여 캐시 클라이언트를 구성하는 방법에 대한 연습 과정을 제공합니다.

항목 내용

  • 캐싱 NuGet 패키지를 사용하여 캐시 클라이언트 구성

  • ASP.NET 프로젝트에 세션 상태 공급자 사용

  • ASP.NET 프로젝트에 대한 출력 캐시 공급자 사용

캐싱 NuGet 패키지를 사용하여 캐시 클라이언트 구성

Managed Cache Service 클라이언트 애플리케이션을 쉽게 구성할 수 있습니다. Managed Cache Service 캐시 클라이언트가 캐시에 액세스할 수 있도록 필요한 구성 및 어셈블리 참조를 추가하는 NuGet 패키지를 제공합니다.

참고

Managed Cache Service Azure 웹 사이트, Cloud Services 및 Virtual Machines 클라이언트 애플리케이션을 지원합니다. 이러한 여러 클라이언트 응용 프로그램 유형의 구성 단계는 서로 매우 비슷하며 약간의 차이만 있습니다. 제공되는 캐시 NuGet 패키지는 이러한 차이의 대부분을 자동으로 처리하며 이러한 차이는 이 항목의 여러 곳에 설명되어 있습니다. 차이점에 대한 요약은 Cache Service 클라이언트 애플리케이션 유형을 참조하세요.

클라우드 서비스 애플리케이션을 만드는 경우 Azure SDK 버전 2.1 이상을 사용하는 nsure를 다운로드합니다. Azure 웹 사이트 또는 Virtual Machines 클라이언트 응용 프로그램을 만드는 경우 캐시 NuGet 패키지가 시작에 필요한 모든 항목을 설치합니다.

중요

이러한 단계를 수행하려면 NuGet 패키지 관리자 버전 2.6.40627.9000 이상이 필요합니다. 최신 NuGet 패키지 관리자 설치하려면 NuGet 패키지 관리자 참조하세요.

Managed Cache Service NuGet 패키지를 사용하려면 솔루션 탐색기 클라이언트 프로젝트를 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택합니다.

Azure 캐싱을 선택하고 설치를 클릭한 다음 동의함을 클릭합니다. 패키지가 클라이언트 프로젝트에 설치되면 닫기를 클릭하여 NuGet 패키지 관리 창을 닫습니다.

참고

목록에 Azure 캐싱이 나타나지 않으면 온라인 검색 텍스트 상자에 WindowsAzure.Caching을 입력합니다.

Windows Azure Cache NuGet Package

Managed Cache Service NuGet 패키지가 클라이언트 프로젝트에 설치되면 클라이언트 애플리케이션이 캐시에 액세스할 수 있도록 필요한 구성 및 어셈블리 참조를 추가합니다.

클라이언트 프로젝트의 web.config 또는 app.config에 여러 항목이 추가됩니다.

  1. configSectionsdataCacheClients라는 두 개의 섹션이 cacheDiagnostics에 추가됩니다.

    <!-- Non-cache sections omitted for space -->
      <configSections>
        <section name="dataCacheClients" 
            type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
    
        <section name="cacheDiagnostics" 
            type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
      </configSections>
    
  2. dataCacheClients 섹션이 configuration 섹션에 추가됩니다.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="[Cache role name or Service Endpoint]" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    

    [캐시 역할 이름 또는 서비스 엔드포인트]를 관리 포털의 캐시 대시보드에 표시되는 엔드포인트 URL로 바꿉니다.

    Endpoint URL for Windows Azure Cache Service
    이 예제에서 캐시 이름은 applicationcache이고 엔드포인트 URL은 applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    

    securityProperties 섹션의 주석 처리를 제거하고 [인증 키]를 인증 키로 바꿉 있습니다.

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    

    인증 키는 관리 포털의 캐시 대시보드에서 액세스 키를 클릭하여 찾을 수 있습니다.

    Manage Access Keys for Windows Azure Cache Service

    경고

    이러한 설정을 제대로 구성하지 않으면 클라이언트가 캐시에 액세스할 수 없습니다.

클라우드 서비스 프로젝트의 경우 Managed Cache Service NuGet 패키지는 캐시 클라이언트 역할ServiceConfiguration.cscfgClientDiagnosticLevel 설정 ConfigurationSettings 도 추가합니다. 다음 예제는 기본 ClientDiagnosticLevel인 ClientDiagnosticLevel이 1인 파일의 섹션 ServiceConfiguration.cscfg 입니다.WebRole1

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

참고

캐시 진단 수준에 대한 자세한 내용은 Azure Managed Cache Service ClientDiagnosticLevel 정보를 참조하세요.

필요한 구성을 추가하는 것 외에도 Managed Cache Service NuGet 패키지는 다음 어셈블리 참조를 추가합니다.

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.AzureCommon.dll

  • Microsoft.ApplicationServer.Caching.AzureClientHelper.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

프로젝트가 웹 프로젝트인 경우 다음 어셈블리 참조도 추가됩니다.

  • Microsoft.Web.DistributedCache.dll

ASP.NET 프로젝트에 세션 상태 공급자 사용

Microsoft Azure 캐시 세션 상태 공급자는 ASP.NET 애플리케이션에 대한 out-of-process 스토리지 메커니즘입니다. 이 공급자를 사용하여 메모리 내 또는 SQL Server 데이터베이스 대신 캐시에 세션 상태를 저장할 수 있습니다. 캐싱 NuGet 패키지를 사용하여 캐싱을 사용하도록 설정하는 경우 캐시 세션 상태 공급자를 사용하도록 주석 처리된 섹션을 추가합니다.

  1. 먼저 캐싱 NuGet 패키지 섹션을 사용하여 캐시 클라이언트 구성 섹션에 설명된 대로 ASP.NET 공급자와 함께 사용할 캐시를 구성합니다.

  2. 세션 상태 캐싱을 구성하는 기존 sessionState 요소를 제거합니다. NuGet 패키지에 의해 추가된 주석이 추가된 sessionState 섹션을 제거하지 마세요.

  3. web.config 파일에서 sessionState 섹션의 주석 처리를 제거합니다.

    <!-- Azure Caching session state provider -->
    <!--<sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
      <providers>
        <add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheSessionState"/>
      </providers>
    </sessionState>-->
    

다음 목록에는 세션 상태 공급자에 영향을 주는 선택적 구성 변경 사항이 나와 있습니다.

  • add 요소의 cacheName 특성을 사용하여 대상 명명된 캐시를 변경합니다.

  • add 요소의 dataCacheClientName 특성을 사용하여 캐시 클라이언트 설정의 원본을 변경합니다. 이 특성을 web.config 파일의 기존 dataCacheClient 섹션 이름으로 설정합니다.

  • 연결된 dataCacheClient 섹션에서 설정을 변경하여 캐시 클라이언트의 동작을 수정합니다. 예를 들어 isCompressionEnabled 특성으로 압축을 사용하도록 설정합니다.

    <dataCacheClient name="default" isCompressionEnabled="true">
      <!-- Other cache settings omitted -->
    </dataCacheClient>
    

    사용 가능한 구성 옵션 목록은 Azure Managed Cache Service 대한 캐시 클라이언트 구성 설정 참조하세요. 캐싱에 대한 ASP.NET 공급자는 이진 또는 사용자 지정 serialization 형식을 지원하지 않습니다. 이러한 직렬 변환기가 세션 상태에 사용되는 경우 다음 예외가 발생합니다. "'Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 어셈블리의 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' 형식이 serializable로 표시되지 않습니다."

  • 세션 상태 공급자의 설정을 변경합니다. 사용 가능한 구성 옵션 목록은 Azure Managed Cache Service 대한 세션 상태 공급자 구성 설정 ASP.NET 참조하세요.

ASP.NET 프로젝트에 대한 출력 캐시 공급자 사용

Microsoft Azure 캐시 출력 캐시 공급자는 출력 캐시 데이터에 대한 out-of-process 스토리지 메커니즘입니다. 이 데이터는 완전한 HTTP 응답(페이지 출력 캐싱)에 특별히 사용됩니다. 공급자가 ASP.NET 4에 도입된 새로운 출력 캐시 공급자 확장 포인트에 연결됩니다. 캐싱 NuGet 패키지를 사용하여 캐싱을 사용하도록 설정하는 경우 캐시 페이지 출력 공급자를 사용하도록 설정하는 주석 처리된 섹션이 추가됩니다.

  1. 먼저 캐싱 NuGet 패키지 섹션을 사용하여 캐시 클라이언트 구성 섹션에 설명된 대로 ASP.NET 공급자와 함께 사용할 캐시를 구성합니다.

  2. NuGet 사용하여 Visual Studio ASP.NET 프로젝트에 캐싱 지원을 추가합니다.

    중요

    이러한 단계를 수행하려면 최신 NuGet 패키지 관리자(버전 2.6.40627.9000 이상)가 있어야 합니다. 최신 NuGet 패키지 관리자 설치하려면 NuGet 패키지 관리자 참조하세요.

  3. 출력 캐싱을 구성하는 기존 캐싱 요소를 제거합니다. NuGet 패키지에 의해 추가된 주석 처리된 캐싱 섹션을 제거하지 마세요.

  4. web.config 파일에서 캐싱 섹션의 주석 처리를 제거합니다.

        <!-- Azure Caching output caching provider -->
        <!--Uncomment this section to use Azure Caching for output caching-->
        <!--<caching>
          <outputCache defaultProvider="AFCacheOutputCacheProvider">
            <providers>
              <add name="AFCacheOutputCacheProvider" 
                type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache"
                cacheName="default"
                dataCacheClientName="default"
                applicationName="AFCacheOutputCache" />
            </providers>
          </outputCache>
        </caching>-->
    

다음 목록에는 출력 캐시 공급자에 영향을 주는 선택적 구성 변경 사항이 나와 있습니다.

  • add 요소의 cacheName 특성을 사용하여 대상 명명된 캐시를 변경합니다.

  • add 요소의 dataCacheClientName 특성을 사용하여 캐시 클라이언트 설정의 원본을 변경합니다. 이 특성을 web.config 파일의 기존 dataCacheClient 섹션 이름으로 설정합니다.

  • 연결된 dataCacheClient 섹션에서 설정을 변경하여 캐시 클라이언트의 동작을 수정합니다. 예를 들어 isCompressionEnabled 특성으로 압축을 사용하도록 설정합니다.

    <dataCacheClient name="default" isCompressionEnabled="true">
    

    사용 가능한 구성 옵션 목록은 Azure Managed Cache Service 대한 캐시 클라이언트 구성 설정 참조하세요. 캐싱에 대한 ASP.NET 공급자는 이진 또는 사용자 지정 serialization 형식을 지원하지 않습니다.

  • 출력 캐시 공급자의 설정을 변경합니다. 사용 가능한 구성 옵션 목록은 Azure Managed Cache Service 대한 ASP.NET 페이지 출력 캐시 공급자 구성 설정 참조하세요.