ASP.NET 4 で出力キャッシュ プロバイダーをキャッシュするための構成設定 (AppFabric 1.1 キャッシュ)

このトピックでは、ASP.NET の Microsoft AppFabric 1.1 for Windows Server 出力キャッシュ プロバイダーの構成設定について説明します。この設定は、web.config ファイルの outputCache 要素の providers セクションで指定します。

セッション状態の構成設定

属性 説明

name (必須)

プロバイダーを参照するために outputCache 要素が使用するプロバイダーの「フレンドリ」名です。

type (必須)

プロバイダーの .NET Framework 型文字列です。これは “Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache” に設定する必要があります。

cacheName (必須)

AppFabric キャッシュの名前です。

dataCacheClientName (省略可能)

dataCacheClients 構成セクションから使用する dataCacheClient セクションの名前です。この属性は、複数の dataCacheClient セクションが web.config ファイルで指定されている場合にのみ必須です。既定では、プロバイダーは “default” という dataCacheClient セクションを使用します。

applicationName (省略可能)

出力キャッシュデータを格納するためのキャッシュ キーを作成するとき、プロバイダーが使用する文字列値です。既定値は空の文字列です。この属性が設定されていない場合、プロバイダーは内部的に使用するキャッシュ キーの一部分として HttpRuntime.AppDomainAppId の値を使用します。セッション状態機能とは異なり、出力キャッシュ データを異なる複数の ASP.NET アプリケーション間で共有しないようにお勧めします (たとえば、/contoso と /AdventureWorks で出力キャッシュ データの共有はできません)。その代わりに、同一アプリケーションの異なる複数の物理インスタンスすべてが、同じ出力キャッシュ データにアクセスするようにしてください。これを行うには、異なる 2 つの方法があります。

  • applicationName プロバイダー属性が明示的に設定されていない場合、キャッシュ キー作成時にはプロバイダーによって HttpRuntime.AppDomainAppId が内部的に使用されます。つまり、同一アプリケーションの各物理インスタンス (/contoso アプリケーションをホストしている各 Web サーバー) を、正確に同じメタベース パスを使用して IIS にインストールする必要があります。SQL Server およびプロセス分離セッション状態プロバイダーでのメタベース パスの使用方法については、https://support.microsoft.com/kb/325056 を参照してください。セッション状態は別の機能ですが、メタベース パスの同期の維持に関して同じ問題が存在します。web.config ファイルに applicationName 属性が設定されていない場合の出力キャッシュが、これに該当します。

  • より簡単な方法は、同一 ASP.NET アプリケーションの各インスタンス (たとえば、/contoso アプリケーションをホストしている各 Web サーバー) について、web.config ファイルで同じ applicationName 属性を使用することです。これにより、同一アプリケーションの異なる複数の物理インスタンスで、同じ出力キャッシュ データを読み書きできます。この場合、プロバイダーはキャッシュ キー作成時に AppDomainAppId を使用しません。したがって、メタデータ パスが不一致になる危険性はありません。

retryInterval (省略可能)

キャッシュと通信するときにエラーが発生した場合に、再試行と再試行の間に待機する時間の長さです。この値に使用する文字列の形式は "HH:MM:SS" です。既定で、プロバイダーは 1 秒間休止します。

retryCount (省略可能)

キャッシュと通信するときにエラーが発生した場合に、プロバイダーに通知する再試行回数の整数値です。すべての操作が再試行できるとは限らないことに注意してください。既定の再試行回数は 3 回です。プロバイダーは再試行と再試行の間に、retryInterval に設定した時間だけ休止します。

次の例は、AppFabric キャッシュを使用する outputCache 要素を示しています。

<caching>
  <outputCache defaultProvider="DistributedCache">
    <providers>
      <add name="DistributedCache"
           type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache"
           cacheName="default"
           dataCacheClientName="default" />
    </providers>
  </outputCache>
</caching>

関連項目

概念

出力キャッシュ プロバイダー (AppFabric 1.1 キャッシュ)

  2012-03-05