方法: Azure Managed Cache Service のキャッシュ クライアントを構成する

重要

Microsoft では、すべての新しい開発で Azure Redis Cache を使用することをお勧めします。 Azure Cache オファリングの選択に関する最新のドキュメントとガイダンスについては、「自分に適した Azure Cache オファリング」を参照してください。

Managed Cache Serviceでは、必要なアセンブリ参照と構成を追加するNuGet パッケージを提供することで、キャッシュ クライアントを簡単に構成できます。 また、Caching NuGet パッケージは、Web プロジェクトの web.config にコメントアウトしたセクションも用意しています。このセクションで、キャッシュ セッション状態およびページ出力キャッシュ プロバイダーを有効にすることができます。 このトピックでは、Caching NuGet パッケージを使用してキャッシュ クライアントを構成する場合のチュートリアルを示します。

このトピックの内容

  • Caching NuGet パッケージを使用してキャッシュ クライアントを構成する

  • ASP.NET プロジェクトでセッション状態プロバイダーを使用する

  • ASP.NET プロジェクトに出力キャッシュ プロバイダーを使用する

Caching NuGet パッケージを使用してキャッシュ クライアントを構成する

Managed Cache Serviceクライアント アプリケーションの構成は簡単です。 Managed Cache Serviceは、キャッシュ クライアントがキャッシュにアクセスできるようにするために必要な構成とアセンブリ参照を追加するためのNuGet パッケージを提供します。

注意

Managed Cache Serviceでは、Azure Web サイト、Cloud Services、Virtual Machines クライアント アプリケーションがサポートされます。 これらの異なるクライアント アプリケーションの構成手順は、細かい違いはありますが、よく似ています。 提供されている Cache NuGet パッケージは、このような違いの多くを自動的に処理します。この違いについては、このトピックのさまざまな部分で説明します。 相違点の概要については、「 キャッシュ サービス クライアント アプリケーションの種類」を参照してください

クラウド サービス アプリケーションを作成する場合は、 Azure SDK バージョン 2.1 以降を使用しているサーバーをダウンロードしてください。 Azure Web Sites または仮想マシン クライアント アプリケーションを作成する場合、作成に必要なすべてが Caching NuGet パッケージによって自動的にインストールされます。

重要

これらの手順を実行するには、NuGet Package Manager バージョン 2.6.40627.9000 以降が必要です。 最新のNuGet パッケージ マネージャーをインストールするには、NuGet パッケージ マネージャーを参照してください。

Managed Cache Service NuGet パッケージを使用するには、ソリューション エクスプローラーでクライアント プロジェクトを右クリックし、[NuGet パッケージの管理] を選択します。

[Azure Caching] を選択し、[インストール] をクリックし、[同意する] をクリックします。 パッケージがクライアント プロジェクトにインストールされたら、[閉じる] をクリックして [NuGet パッケージの管理] ウィンドウを閉じます。

注意

一覧に [Azure Caching] が表示されない場合は、[オンラインで検索] ボックスに「WindowsAzure.Caching」と入力します。

Windows Azure Cache NuGet Package

Managed Cache Service NuGet パッケージがクライアント プロジェクトにインストールされると、クライアント アプリケーションがキャッシュにアクセスできるように、必要な構成とアセンブリ参照が追加されます。

クライアント プロジェクトの web.config または app.config に、いくつかのアイテムが追加されます。

  1. configSectionsdataCacheClientscacheDiagnostics という 2 つのセクションが追加されます。

    <!-- 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 パッケージでは、ClientDiagnosticLevel 設定ConfigurationSettingsもキャッシュ クライアント ロールに追加されますServiceConfiguration.cscfg。 次のWebRole1例は、ClientDiagnosticLevel が 1 のファイルのServiceConfiguration.cscfgセクションです。これは既定の ClientDiagnosticLevel です

<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

プロジェクトが Web プロジェクトである場合は、次のアセンブリ参照も追加されます。

  • Microsoft.Web.DistributedCache.dll

ASP.NET プロジェクトでセッション状態プロバイダーを使用する

Microsoft Azure キャッシュ セッション状態プロバイダーは、ASP.NET アプリケーションのアウトプロセス ストレージ メカニズムです。 このプロバイダーを使用すると、メモリ内のデータベースや SQL Server データベースではなくキャッシュにセッションの状態を保存できます。 有効にしたキャッシュに対して Caching 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 プロバイダーでは、バイナリまたはカスタムシリアル化の種類がサポートされていないことに注意してください。 これらのシリアライザーをセッション状態に使用する場合、次の例外が発生します。アセンブリ 'Microsoft.Web.DistributedCache, Version=101.0.0.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35' の型 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' はシリアル化可能としてマークされません"

  • セッション状態プロバイダーの設定を変更します。 使用可能な構成オプションの一覧については、「ASP.NET Azure Managed Cache Service のセッション状態プロバイダー構成設定」を参照してください。

ASP.NET プロジェクトに出力キャッシュ プロバイダーを使用する

Microsoft Azure キャッシュ出力キャッシュ プロバイダーは、出力キャッシュ データのアウトプロセス ストレージ メカニズムです。 このデータは、完全な HTTP 応答専用です (ページ出力キャッシュ)。 プロバイダーは、ASP.NET 4 で導入された新しい出力キャッシュ プロバイダー拡張機能ポイントに接続します。 キャッシュ NuGet パッケージを使用してキャッシュを有効にすると、キャッシュ ページ出力プロバイダーを有効にするためにコメントアウトされたセクションが追加されます。

  1. 最初に、「キャッシュ NuGet パッケージを使用してキャッシュ クライアントを構成する」セクションで説明したように、ASP.NET プロバイダーで使用するキャッシュを構成します。

  2. NuGetを使用して、Visual Studioの ASP.NET プロジェクトにキャッシュ サポートを追加します。

    重要

    これらの手順を実行するには、最新の NuGet Package Manager (Version 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 プロバイダーでは、バイナリまたはカスタムシリアル化の種類がサポートされていないことに注意してください。

  • 出力キャッシュプロバイダーの設定を変更します。 使用可能な構成オプションの一覧については、「Azure Managed Cache Service のページ出力キャッシュ プロバイダーの構成設定 ASP.NET」を参照してください。