caching の outputCache 要素 (ASP.NET 設定スキーマ)

アプリケーション全体の出力キャッシュ設定を指定します。

<outputCache enableOutputCache="true|false" 
             enableFragmentCache="true|false" 
             sendCacheControlHeader="true|false" 
             omitVaryStar="true|false"
             defaultProvider="AspNetInternalProvider">
</outputCache>

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性

説明

enableOutputCache

省略可能な Boolean 型の属性です。

ページの出力キャッシュを有効または無効にします。

無効にした場合、プログラムまたは宣言文による設定にかかわらず、ページはキャッシュされません。

既定値は trueです。

enableFragmentCache

省略可能な Boolean 型の属性です。

アプリケーションのフラグメント キャッシュを有効または無効にします。

無効にした場合、@ OutputCache ディレクティブまたは使用されているキャッシュ プロファイルにかかわらず、ページはキャッシュされません。 上流のプロキシ サーバー、およびブラウザー クライアントに対し、ページ出力をキャッシュしないよう指示するキャッシュ制御ヘッダーが追加されます。

既定値は falseです。

sendCacheControlHeader

省略可能な Boolean 型の属性です。

出力キャッシュ モジュールによって、既定で cache-control:private ヘッダーが送信されるかどうかを示す値を取得または設定します。

既定値は falseです。

omitVaryStar

省略可能な Boolean 型の属性です。

応答における HTTP "Vary: *" ヘッダーの送信を有効または無効にします。 既定の設定は false で、出力キャッシュ ページの "Vary: *" ヘッダーが送信されます。

既定値は false です。

defaultProvider

省略可能な String 型の属性です。

既定の出力キャッシュ プロバイダーを取得または設定します。

既定値は "AspNetInternalProvider" です。 これは、ASP.NET によって実行時に用意されるメモリ内キャッシュです。

子要素

要素

説明

providers

省略可能な子要素で、カスタムの出力キャッシュ プロバイダーを構成するときに使用できます。

親要素

要素

説明

configuration

共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルで必要なルート要素です。

system.web

構成ファイル内に含まれる ASP.NET の構成設定のルート要素を指定します。 ASP.NET Web アプリケーションを設定し、アプリケーションの動作方法を制御する構成要素を格納します。

caching

Web アプリケーションのキャッシュ設定を構成します。

解説

既定の構成

次の既定の outputCache 要素は、マシン構成ファイルやルートの Web.config ファイルでは明示的に構成されていませんが、.NET Framework Version 2.0 においては、アプリケーションによって返される既定の構成です。

<outputCache enableOutputCache = "true" 
             enableFragmentCache = "true" 
             sendCacheControlHeader = "true" 
             omitVaryStar = "false"
             defaultProvider="AspNetInternalProvider">
</outputCache>

ASP.NET アプリケーションの出力キャッシュを無効にする方法の例を次に示します。

<outputCache enableOutputCache="false" />

拡張性がある出力キャッシュ

ASP.NET を使用して、出力キャッシュを拡張したり、1 つまたは複数のカスタム出力キャッシュ プロバイダーを構成したりできます。 出力キャッシュ プロバイダーは任意のストレージ機構を使用して HTML コンテンツを保持します。 これらのストレージ オプションとして、ローカルまたはリモートのディスク、クラウド ストレージ、分散キャッシュ エンジンなどがあります。

出力キャッシュ プロバイダーの機能拡張によって、Web サイトの出力キャッシュ戦略をより積極的かつ合理的に設計できるようになります。 たとえば、サイトの "トップ 10" ページをメモリにキャッシュし、トラフィックが低いページをディスク上にキャッシュする出力キャッシュ プロバイダーを作成できます。 また、メモリの消費がフロントエンド Web サーバーからオフロードされるように、レンダリングされるページの組み合わせ別にキャッシュする一方で、分散キャッシュを使用することもできます。

カスタム出力キャッシュ プロバイダーは、OutputCacheProvider 型から派生するクラスとして作成します。 その後、outputCache 要素の providers サブセクションを使用して、Web.config ファイルでプロバイダーを構成できます。

既定では、ASP.NET では、すべての HTTP 応答、レンダリングされるページ、およびコントロールにおいて、前の例のメモリ内の出力キャッシュが使用されます (前の例で defaultProvider 属性は AspNetInternalProvider に設定されます)。 Web アプリケーションに使用する既定の出力キャッシュ プロバイダーを変更するには、defaultProvider に異なるプロバイダー名を指定します。

また、コントロールごと、および要求ごとに異なる出力キャッシュ プロバイダーを選択できます。 Web ユーザー コントロールごとに異なる出力キャッシュ プロバイダーを指定するには、次の例に示すように、ページまたはコントロール ディレクティブに providerName 属性を使用することで、宣言によって選択する方法が最も簡単です。

<%@ OutputCache Duration="60" VaryByParam="None" 
    providerName="DiskCache" %>

1 つの HTTP 要求に対して異なる出力キャッシュ プロバイダーを指定し、Global.asax ファイルで新しい GetOutputCacheProviderName メソッドをオーバーライドして、特定の要求に使用するプロバイダーをプログラムで指定できます。

参照

処理手順

チュートリアル : 出力キャッシュを使用した Web サイトのパフォーマンスの強化

方法 : ASP.NET 構成設定をロックする

参照

OutputCache

概念

ASP.NET のキャッシュの概要

ASP.NET 構成の保護

ASP.NET の構成のシナリオ

その他の技術情報

ASP.NET Web サイト管理