Partager via


outputCache, élément de caching (Schéma des paramètres ASP.NET)

Spécifie des paramètres de cache de sortie au niveau de l'application.

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

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut

Description

enableOutputCache

Attribut Boolean facultatif.

Active/désactive le cache de sortie de page.

S'il est désactivé, aucune page n'est mise en cache indépendamment des paramètres de programmation ou déclaratifs.

La valeur par défaut est true.

enableFragmentCache

Attribut Boolean facultatif.

Active/désactive le cache de fragment de l'application.

S'il est désactivé, aucune page n'est mise en cache indépendamment de la directive @ OutputCache ou du profil de mise en cache utilisé. Inclut un en-tête Cache-Control indiquant que des serveurs proxy amont ainsi que des clients de navigateur ne doivent pas tenter de mettre en cache la sortie de page.

La valeur par défaut est false.

sendCacheControlHeader

Attribut Boolean facultatif.

Obtient ou définit une valeur qui indique si l'en-tête cache-control:private est envoyé par défaut par le module de cache de sortie.

La valeur par défaut est false.

omitVaryStar

Attribut Boolean facultatif.

Active/désactive l'envoi d'un en-tête HTTP "Vary: *" dans la réponse. Lorsque le paramètre par défaut est false, un en-tête "Vary: * " est envoyé pour les pages mises en cache de sortie.

La valeur par défaut est false.

defaultProvider

Attribut de chaîne facultatif.

Obtient ou définit le fournisseur de cache de sortie par défaut.

La valeur par défaut est « AspNetInternalProvider ». Il s'agit du cache en mémoire fourni par ASP.NET.

Éléments enfants

Élément

Description

providers

Élément enfant facultatif qui peut être utilisé pour configurer des fournisseurs de cache de sortie personnalisés.

Éléments parents

Élément

Description

configuration

Élément racine requis dans chaque fichier de configuration utilisé par le Common Language Runtime et les applications .NET Framework.

system.web

Spécifie l'élément racine pour les paramètres de configuration ASP.NET dans un fichier de configuration. Contient des éléments de configuration qui configurent les applications Web ASP.NET et contrôlent le comportement des applications.

caching

Configure les paramètres du cache pour une application Web.

Notes

Configuration par défaut

L'élément outputCache par défaut suivant n'est pas configuré explicitement dans le fichier de configuration machine ou dans le fichier racine Web.config, mais il s'agit de la configuration par défaut retournée par une application dans le .NET Framework version 2.0.

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

L'exemple suivant montre comment désactiver le cache de sortie pour une application ASP.NET :

<outputCache enableOutputCache="false" />

Mise en cache de sortie extensible

ASP.NET vous permet d'étendre la mise en cache de sortie et de configurer un ou plusieurs fournisseurs de cache de sortie personnalisés. Les fournisseurs de cache de sortie peuvent utiliser un mécanisme de stockage pour rendre le contenu HTML persistant. Ces options de stockage peuvent inclure des disques locaux ou distants, un stockage en nuage et des moteurs de cache distribués.

L'extensibilité des fournisseurs de cache de sortie dans ASP.NET vous permet de concevoir des stratégies de mise en cache de sortie plus agressives et plus intelligentes pour les sites Web. Par exemple, vous pouvez créer un fournisseur de cache de sortie qui met en mémoire cache les 10 pages les plus visitées d'un site, tous en mettant en cache les pages dont le trafic est plus faible sur un disque. Vous pouvez également mettre en cache chaque variation de combinaison pour une page rendue, mais utiliser un cache distribué afin de décharger la consommation de mémoire des serveurs Web frontaux.

Vous créez un fournisseur de cache de sortie personnalisé en tant que classe qui dérive du type OutputCacheProvider. Vous pouvez ensuite configurer le fournisseur dans le fichier Web.config à l'aide de la nouvelle sous-section providers de l'élément outputCache .

Par défaut, dans ASP.NET, toutes les réponses HTTP, toutes les pages rendues et tous les contrôles utilisent le cache de sortie en mémoire qui se trouve dans l'exemple précédent (où l'attribut defaultProvider a la valeur AspNetInternalProvider). Vous pouvez modifier le fournisseur de cache de sortie par défaut utilisé pour une application Web en spécifiant un nom de fournisseur différent pour defaultProvider.

De plus, vous pouvez sélectionner des fournisseurs de cache de sortie différents pour un contrôle individuel et des requêtes individuelles. La façon la plus simple de spécifier un fournisseur de cache de sortie différent pour des contrôles utilisateur Web différents consiste à le faire de façon déclarative en utilisant le nouvel attribut providerName dans une page ou une directive de contrôle, comme indiqué dans l'exemple suivant :

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

Pour spécifier un fournisseur de cache de sortie différent pour une requête HTTP et substituer la méthode GetOutputCacheProviderName dans le fichier Global.asax afin de spécifier par programmation le fournisseur à utiliser pour une requête spécifique.

Voir aussi

Tâches

Procédure pas à pas : utilisation de la mise en cache de sortie pour améliorer les performances d'un site Web

Comment : verrouiller des paramètres de configuration ASP.NET

Référence

OutputCache

Concepts

Vue d'ensemble de la mise en cache ASP.NET

Sécurisation de la configuration ASP.NET

Scénarios de configuration ASP.NET

Autres ressources

Administration de site Web ASP.NET