方法: ASP.NET 用の AppFabric セッション状態プロバイダーの構成 (AppFabric 1.1 キャッシュ)

このトピックでは、プロビジョニングされた AppFabric キャッシュをセッション状態キャッシュ処理に使用するように ASP.NET Web アプリケーションを構成する方法について説明します。構成は、対象 Web アプリケーションの web.config ファイルを変更することによって行います。

セッション状態用に Microsoft AppFabric 1.1 for Windows Server キャッシュ を使用する

ASP.NET Web アプリケーションで AppFabric セッション状態プロバイダーを使用するには、アプリケーションの web.config ファイルに次の要素を追加する必要があります。

  • configSections: この要素は構成ファイルで開始の configuration タグの下に最初の要素として指定する必要があります。AppFabric キャッシュ アセンブリを機能させるために必須です。

  • dataCacheClients: この要素は configuration 要素の子です。キャッシュ クライアントの構成およびキャッシュ ホストの指定を行う dataCacheClient 要素を保持するために使用されます。

  • sessionState: この要素は system.web 要素の子です。Microsoft AppFabric 1.1 for Windows Server を使用してセッション状態データを管理するよう Web アプリケーションに指定します。cacheName 属性では、使用される名前付きキャッシュを指定します。dataCacheClientName 属性には、キャッシュ構成に使用する dataCacheClient セクションを指定します。

警告

キャッシュ ホストの名前の指定に使用する web.config ファイルは、セキュリティで保護することをお勧めします。

セッション状態用に Microsoft AppFabric 1.1 for Windows Server キャッシュを使用するには

  1. 最初に、Microsoft AppFabric 1.1 for Windows Server キャッシュを使用するように Visual Studio 2010 プロジェクトを準備します。詳細については、「キャッシュ クライアント開発環境の準備 (AppFabric 1.1 キャッシュ)」を参照してください。

  2. 通常のキャッシュ アセンブリに加え、Microsoft AppFabric 1.1 for Windows Server キャッシュ インストール パスで Microsoft.Web.DistributedCache.dll アセンブリも参照します。

  3. この手順の後にある例から configSections 要素を web.config ファイルにコピーします。この要素が configuration タグ内の最初の要素であることを確認します。

  4. この手順の後にある例から dataCacheClients 要素を web.config ファイルにコピーします。この要素は configuration 要素内で configSections 要素の後に追加します。

    1. ホスト要素の name 属性と cachePort 属性を構成し、使用環境のキャッシュ サーバーに一致させます。必要に応じてホスト要素の追加や削除を行います。
  5. この手順の後にある例から sessionState 要素を web.config ファイルにコピーします。この要素は system.web 要素内に配置します。cacheName 属性および dataCacheClientName 属性と、その他の必要な設定を指定します。

  6. Web アプリケーションの ID を特定します。これは、Web サーバーで IIS Manager を使用して行うことができます。Web アプリケーションに関連付けられているアプリケーション プールの ID を確認します。Grant-CacheAllowedClientAccount Windows Powershell コマンドを使用して、キャッシュ クラスターへのこのユーザー アクセスを許可します。

    ヒント

    アプリケーション プールが "NT Authority\Network Service" などの組み込みコンピューター アカウントとして実行している場合は、そのコンピューターに対してキャッシュ クラスターへのアクセスを許可する必要があります。これを行うには、DOMAINNAME\MACHINENAME$ をアカウントとして指定します。これがコンピューター アカウントであることを示すため、コンピューター名に "$" を付加することに注意してください。

この例は、ASP.NET Web アプリケーションを構成し、キャッシュ クライアントを使用して default という名前の分散キャッシュにセッション データを保存する方法を示しています。この例のキャッシュ クライアントは、CacheServer1 という名前の 1 つのキャッシュ ホストとのみ通信するように構成されています。

  1. 最初に、configuration 要素の最初の要素として configSections 要素を web.config ファイルに追加します。

      <!--configSections must be the FIRST element -->
      <configSections>
        <section name="dataCacheClients"
                 type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
                 allowLocation="true" allowDefinition="Everywhere"/>
      </configSections>
    
  2. 次に、1 つまたは複数の dataCacheClient 要素を含む 1 つの dataCacheClients 要素を追加します。これを web.config ファイルの configSections 要素の後に追加します。ここで、キャッシュ クライアントがアプリケーションのニーズを満たすように構成します。詳細については、「アプリケーション構成設定 (AppFabric 1.1 キャッシュ)」を参照してください。

      <dataCacheClients>
        <dataCacheClient name="default">
          <hosts>
            <host name="CacheServer1" cachePort="22233" />
          </hosts>
        </dataCacheClient>
      </dataCacheClients>
    
  3. configSections 要素と dataCacheClients 要素を追加した後、web.config ファイルで system.web 要素内に sessionState 要素を追加します。ここで、Web アプリケーションでセッション状態データの保存に使用するキャッシュを指定します。cacheName 属性および dataCacheClientName 属性と他の必要な設定をカスタマイズします。

    複数の Web アプリケーションで同じセッション状態を共有する必要がある場合、同じ applicationNamme 属性値を使用することに注意してください。そうでない場合は、applicationNamme 属性を指定する必要はありません。

        <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false">
          <providers>
            <add name="AppFabricCacheSessionStoreProvider"
                 type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
                 cacheName="default"
                 useBlobMode="true"
                 dataCacheClientName="default"/>
          </providers>
        </sessionState>
    

完了すると、Web アプリケーションの最終的な web.config ファイルは次の例のようになります。

<?xml version="1.0"?>

<configuration>
  <configSections>
    <section name="dataCacheClients"
             type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core"
             allowLocation="true" allowDefinition="Everywhere"/>
  </configSections>

  <dataCacheClients>
    <dataCacheClient name="default" channelOpenTimeout="10000">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>
  
  <system.web>
    <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false">
      <providers>
        <add name="AppFabricCacheSessionStoreProvider"
             type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"
             cacheName="default"
             useBlobMode="true"
             dataCacheClientName="default"/>
      </providers>
    </sessionState>
  </system.web>
</configuration>

関連項目

概念

セッション状態プロバイダー (AppFabric 1.1 キャッシュ)

  2012-03-05