セールス: 1-800-867-1380

Azure Cache のセッション状態プロバイダー

更新日: 2014年9月

noteメモ
アプリケーションに対して適切な Azure Cache サービスを選択するためのガイダンスについては、「どの Azure Cache を利用すればよいですか。」を参照してください。

セッション状態プロバイダーは、ASP.NET アプリケーション用のプロセス分離の格納メカニズムです。このプロバイダーにより、メモリ内や SQL Server データベース内ではなく、 キャッシュにセッション状態を保存できます。

セッション状態キャッシュのサンプルについては、「キャッシュ セッション状態と出力キャッシュのサンプル」を参照してください。

セッション状態プロバイダーは過去の ASP.NET セッション状態プロバイダーより次の点が改善されています。

  • セッション状態をシリアル化するために NetDataContractSerializer クラスを内部的に使用します。

  • 異なる複数の ASP.NET アプリケーション間でセッション状態を共有できます。

  • 複数のリーダーと単一ライター向けに同じセッション状態セットへの同時アクセスをサポートします。

  • キャッシュ クライアント プロパティで圧縮を使用できます。

NetDataContractSerializer クラスをシリアル化に使用することで、より広範囲のシリアル化可能な型がサポートされます。これにはバイナリのシリアル化可能な型のサポートも含まれます。

プロバイダーは、異なる複数の ASP.NET アプリケーションで同一のセッション状態データを読み書きする機能をサポートしています。たとえば、開発者が /contoso および /adventureworks という 2 つの異なる ASP.NET サイトを使用しているとします。各 Web アプリケーションで、セッション状態プロバイダーをキャッシュ クラスター内の同じセッション状態ストアを参照するように構成できます。その結果、指定されたすべてのセッション ID に対して両方のアプリケーションが同じセッション データを読み書きするようになります。

セッション状態プロバイダーは、複数のリーダーと単一ライター向けに同じセッション状態セットへの同時アクセスをサポートします。この場合、リーダーは、ReadOnly セッション状態を使用するとマークされているページとして定義されます。AJAX のコールバックを広範囲に使用するアプリケーションでは、アプリケーションのセッション状態アクセス パターンの大部分がセッション状態への読み取り専用アクセスしか必要としない場合、サーバー側での要求キュー処理は発生しません。

  1. 最初に、ASP.NET プロバイダーと共に使用するキャッシュを構成します。キャッシュ は併置トポロジまたは専用ロールを使用してホストできます。

  2. Visual Studio で、NuGet を使用して ASP.NET プロジェクトに キャッシュ サポートを追加します。手順については、「方法: In-Role Cache を使用できるように Visual Studio を準備する (Azure Cache)」を参照してください。

    Important重要
    これらの手順を実行するには、最新の NuGet Package Manager (Version 2.6.40627.9000 以降) が必要です。最新の NuGet Package Manager をインストールする方法については、http://go.microsoft.com/fwlink/?LinkId=240311 をご覧ください。

  3. セッション状態のキャッシュを構成する既存の sessionState 要素があれば削除します。NuGet パッケージによって追加された、コメント化された sessionState セクションは削除しないでください。

  4. 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">
    
    使用できる構成オプションの一覧については、「In-Role Cache クライアントの構成設定 (Web.config)」を参照してください。キャッシュ 用の ASP.NET プロバイダーは、シリアル化の種類としてバイナリまたはカスタムをサポートしていないことに注意してください。これらのシリアライザーがセッション状態に対して使用されている場合、次の例外が発生します。"アセンブリ 'Microsoft.Web.DistributedCache, Version=101.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' の型 'Microsoft.Web.DistributedCache.SerializableSessionStateStoreData' はシリアル化可能としてマークされていません。"

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

Shared Caching でプロバイダーを使用するには、「方法: ASP.NET セッション状態プロバイダーの構成 (Azure Shared Caching)」を参照してください。

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft