方法: 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 キャッシュを使用するには
最初に、Microsoft AppFabric 1.1 for Windows Server キャッシュを使用するように Visual Studio 2010 プロジェクトを準備します。詳細については、「キャッシュ クライアント開発環境の準備 (AppFabric 1.1 キャッシュ)」を参照してください。
通常のキャッシュ アセンブリに加え、Microsoft AppFabric 1.1 for Windows Server キャッシュ インストール パスで Microsoft.Web.DistributedCache.dll アセンブリも参照します。
この手順の後にある例から
configSections
要素を web.config ファイルにコピーします。この要素がconfiguration
タグ内の最初の要素であることを確認します。この手順の後にある例から
dataCacheClients
要素を web.config ファイルにコピーします。この要素はconfiguration
要素内でconfigSections
要素の後に追加します。- ホスト要素の
name
属性とcachePort
属性を構成し、使用環境のキャッシュ サーバーに一致させます。必要に応じてホスト要素の追加や削除を行います。
- ホスト要素の
この手順の後にある例から
sessionState
要素を web.config ファイルにコピーします。この要素はsystem.web
要素内に配置します。cacheName
属性およびdataCacheClientName
属性と、その他の必要な設定を指定します。Web アプリケーションの ID を特定します。これは、Web サーバーで IIS Manager を使用して行うことができます。Web アプリケーションに関連付けられているアプリケーション プールの ID を確認します。
Grant-CacheAllowedClientAccount
Windows Powershell コマンドを使用して、キャッシュ クラスターへのこのユーザー アクセスを許可します。ヒント
アプリケーション プールが "NT Authority\Network Service" などの組み込みコンピューター アカウントとして実行している場合は、そのコンピューターに対してキャッシュ クラスターへのアクセスを許可する必要があります。これを行うには、DOMAINNAME\MACHINENAME$ をアカウントとして指定します。これがコンピューター アカウントであることを示すため、コンピューター名に "$" を付加することに注意してください。
例
この例は、ASP.NET Web アプリケーションを構成し、キャッシュ クライアントを使用して default
という名前の分散キャッシュにセッション データを保存する方法を示しています。この例のキャッシュ クライアントは、CacheServer1
という名前の 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>
次に、1 つまたは複数の
dataCacheClient
要素を含む 1 つのdataCacheClients
要素を追加します。これを web.config ファイルのconfigSections
要素の後に追加します。ここで、キャッシュ クライアントがアプリケーションのニーズを満たすように構成します。詳細については、「アプリケーション構成設定 (AppFabric 1.1 キャッシュ)」を参照してください。<dataCacheClients> <dataCacheClient name="default"> <hosts> <host name="CacheServer1" cachePort="22233" /> </hosts> </dataCacheClient> </dataCacheClients>
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