Partager via


Procédure pas à pas : utilisation de la mise en cache de sortie ASP.NET avec SQL Server

Mise à jour : novembre 2007

Cette procédure pas à pas indique comment mettre en cache des pages ASP.NET qui dépendent des données dans une base de données SQL Server.

Une fonctionnalité avancée de mise en cache de sortie ASP.NET est la dépendance de cache SQL. La dépendance de cache SQL vous permet de mettre en cache des pages qui sont dépendantes des données de tables SQL Server. Vous pouvez configurer SQL Server et ASP.NET pour mettre en cache des demandes de page, réduisant ainsi la charge de travail du serveur, jusqu'à ce que les données dont la page dépend aient été mises à jour dans SQL Server. La dépendance de cache SQL est utile pour les données telles que les catalogues de produit ou les informations d'inscription de client qui restent relativement statiques.

Cette procédure pas à pas illustre les tâches suivantes :

  • Création et configuration d'une page pour afficher des données de la base de données Northwind.

  • Activation d'une base de données pour la notification de cache SQL.

  • Spécification de la dépendance de cache SQL dans votre page et dans votre fichier Web.config.

  • Modifications apportées à la base de données Northwind et affichage du comportement de mise en cache.

Composants requis

Pour exécuter cette procédure pas à pas, vous avez besoin de :

  • Accédez à SQL Server 2000 ou SQL Server 2005 avec la base de données Northwind.

  • Accéder à la base de données Northwind SQL Server. Pour plus d'informations sur le téléchargement et l'installation de l'exemple de base de données Northwind SQL Server, consultez Installation d'exemples de bases de données sur le site Web Microsoft SQL Server.

    Remarque :

    Si vous avez besoin d'informations sur la façon de se connecter à un ordinateur qui exécute SQL Server, contactez l'administrateur du serveur.

  • Microsoft Data Access Components (MDAC) version 2.7 ou ultérieure.

    Si vous utilisez Windows XP ou Windows Server 2003, MDAC 2.7 est déjà installé. Toutefois, si vous utilisez Windows 2000, vous devez peut-être mettre à niveau les composants MDAC déjà installés sur votre ordinateur. Pour plus d'informations, consultez MDAC Installation.

  • avoir la version 2.0 du .NET Framework ;

Création du site Web

Si vous avez déjà créé un site Web dans Visual Web Developer (consultez Procédure pas à pas : création d'une page Web de base dans Visual Web Developer), vous pouvez utiliser ce site et passez à l'étape « Activation de la notification de cache pour SQL Server » ultérieurement dans cette procédure. Sinon, créez un site et une page Web en suivant la procédure suivante.

Pour créer un site Web de système de fichiers

  1. Ouvrez Visual Web Developer.

  2. Dans le menu Fichier, cliquez sur Nouveausite Web. Dans le menu Fichier de Visual Web Developer Express, cliquez sur Nouveau, puis sur Site Web.

    La boîte de dialogue Nouveau site Web s'affiche.

  3. Sous Modèles Visual Studio installés, cliquez sur Site Web ASP.NET.

  4. Dans la zone Emplacement, entrez le nom du dossier dans lequel vous souhaitez conserver les pages de votre site Web.

    Par exemple, tapez le nom du dossier C:\SitesWeb.

  5. Dans la liste Langage, cliquez sur le langage de programmation que vous préférez utiliser.

  6. Cliquez sur OK.

    Visual Web Developer crée le dossier et une page nommée Default.aspx.

Activation de la notification de cache pour SQL Server

Vous devez configurer SQL Server pour fournir la notification appropriée à ASP.NET concernant les modifications dans les données dépendantes. Vous aurez besoin de privilèges d'administrateur pour configurer le serveur.

Pour activer la notification de cache pour SQL Server

  1. Dans le menu Démarrer de Windows, pointez vers Tous les programmes, puis vers Accessoires, puis cliquez sur Invite de commandes pour ouvrir une fenêtre d'invite de commandes.

  2. Recherchez le fichier exécutable Aspnet_regsql.exe sur votre lecteur de disque. Ce fichier est installé avec la version 2.0 de .NET Framework à l'emplacement suivant :

    %windir%\Microsoft.NET\Framework\FrameworkVersion
    

    Assurez-vous que %windir% représente votre répertoire Windows et que la version de .NET Framework est 2.0 ou ultérieure. Le chemin d'accès peut se présenter de la manière suivante :

    C:\WINDOWS\Microsoft.NET\Framework\v2.0.40217
    
  3. Utilisez la commande suivante pour activer la notification de cache pour la table Employees dans la base de données Northwind :

    aspnet_regsql.exe -S <Server> -U <Username> -P <Password> -ed -d Northwind -et -t Employees
    
    Remarque :

    Vous aurez besoin des privilèges d'administrateur ou du compte et du mot de passe d'administrateur. Si vous ne connaissez pas ces informations, consultez votre administrateur de base de données.

    Un message s'affichera qui indique si l'opération d'activation de la base de données a réussi ou échoué. Le message suivant indique que l'opération a réussi :

    Enabling the table for SQL cache dependency.
    ..
    Finished.
    

Ajout d'une connexion de données au projet

Pour utiliser la base de données SQL Server dans Visual Web Developer, vous devez ajouter une connexion à la base de données Northwind.

Pour ajouter une source de données au projet

  1. Dans l'Explorateur de serveurs (Explorateur de bases de données dans Visual Web Developer Express), cliquez avec le bouton droit sur Connexions de données, puis cliquez sur Ajouter une connexion.

    Remarque :

    L'Explorateur de serveurs (Explorateur de bases de données dans Visual Web Developer Express) est généralement ancré derrière l'Explorateur de solutions.

    Si l'Explorateur de serveurs (Explorateur de bases de données dans Visual Web Developer Express) n'est pas visible, dans le menu Affichage, cliquez sur Explorateur de serveurs (Explorateur de bases de données dans Visual Web Developer Express).

  2. La boîte de dialogue Choisir la source de données s'affiche, procédez comme suit :

    1. Dans la liste Source de données, cliquez sur Microsoft SQL Server.

    2. Dans la liste Fournisseur de données, cliquez sur Fournisseur de données .NET Framework pour SQL Server.

    3. Cliquez sur Continuer.

  3. Dans la boîte de dialogue Ajouter une connexion, fournissez les détails (nom de serveur, informations d'identification de connexion, etc.) de votre base de données, puis sélectionnez la base de données Northwind.

  4. Cliquez sur OK.

Ajout des informations de date et de données à la page Web

Vous pouvez à présent créer une page Web pour illustrer la mise en cache. Dans cette section, vous ajouterez des informations de date pour suivre les heures de création des pages et un contrôle GridView pour afficher la table Employees de la base de données Northwind.

Pour ajouter des informations de date et des données à la page Web

  1. Basculez vers la page Default.aspx ou ouvrez-la.

  2. Basculez en mode Design.

  3. À partir du groupe Standard dans la boîte à outils, faites glisser un contrôle Label sur la page, en conservant le nom par défaut Label1.

  4. Dans l'Explorateur de serveurs (Explorateur de bases de données dans Visual Web Developer Express), développez Connexions de données.

  5. Développez le nœud de la connexion de données que vous avez créée précédemment.

  6. Développez le nœud Tables.

  7. Faites glisser la table Employees sur votre page.

    Visual Web Designer crée un contrôle GridView qui est configuré pour utiliser la connexion et la table que vous avez sélectionnées.

  8. Dans le menu Tâches GridView, cliquez sur Configurer la source de données.

    Le nom de chaîne de connexion de données par défaut NorthwindConnectionString1 apparaît dans la première étape de l'Assistant Configurer la source de données.

  9. Cliquez sur Suivant.

  10. Dans le volet Configurer l'instruction Select, sélectionnez Spécifiez les colonnes d'une table ou d'une vue.

  11. Dans la liste Nom, cliquez sur Employees.

  12. Dans la liste Colonnes, sélectionnez les colonnes EmployeeID, LastName et FirstName.

  13. Cliquez sur Suivant.

  14. Cliquez sur Terminer.

    Visual Web Designer configure le contrôle GridView pour afficher les données que vous avez sélectionnées.

    Remarque :

    Si vous voyez un message qui vous demande si vous souhaitez actualiser les champs et les clés du contrôle GridView, cliquez Oui.

  15. Double-cliquez sur une partie vierge de la page**.**

    Le concepteur génère une méthode Page_Load et change de vues.

  16. Ajoutez le code en surbrillance suivant pour afficher des informations de date qui indiquent l'heure de création de la page :

    Protected Sub Page_Load(ByVal sender As Object, _
            ByVal e As System.EventArgs) _
            Handles Me.Load
         Label1.Text = System.DateTime.Now
    End Sub
    
    protected void Page_Load(Object sender, System.EventArgs e)
    {
         Label1.Text = System.DateTime.Now.ToString();
    }
    
  17. Enregistrez le fichier.

Test de la page sans mise en cache

Maintenant vous pouvez exécuter la page et observer le comportement sans mise en cache. La page est chargée et l'heure actuelle du serveur est affichée, puis les données sont récupérées et placées sur la page.

Pour tester la page sans mise en cache

  1. Appuyez sur CTRL+F5 pour exécuter la page.

  2. Actualisez la page dans le navigateur

    Notez que les informations de date changent à chaque actualisation de page. Les données restent les mêmes.

Configuration de la page Web pour la mise en cache

Dans cette partie de la procédure pas à pas, vous configurerez la page pour la dépendance de cache SQL en fonction de la table Employees de la base de données Northwind.

Pour configurer la page Web pour la mise en cache

  1. Basculez en mode Source.

  2. En haut de la page, ajoutez la directive suivante pour indiquer la dépendance :

    <%@ OutputCache Duration="3600" SqlDependency="Northwind:Employees" VaryByParam="none" %>
    

L'attribut VaryByParam indique si ASP.NET doit prendre en considération les paramètres de la page (telles qu'une chaîne de requête ou des valeurs publiées) lors de la mise en cache. Lorsque VaryByParam a la valeur none, aucun paramètre ne sera pris en compte ; la même page sera envoyée à tous les utilisateurs, quels que soient les paramètres supplémentaires fournis. L'affectation de * (un astérisque) à VaryByParam signifie que, pour chaque combinaison de paramètres de demande, une page unique sera mise en cache. Toutefois, l'affectation de * à VaryByParam peut contraindre de nombreuses versions différentes de la page à être mises en cache, en conséquence, si vous connaissez les paramètres qui permettent de varier la mise en cache, il est recommandé de les spécifier explicitement dans l'attribut VaryByParam. Pour plus d'informations, consultez Mise en cache de plusieurs versions d'une page.

Définition de la configuration de mise en cache dans le fichier Web.config

Outre la déclaration OutputCache sur votre page Web dans la section précédente, vous devez spécifier des détails de mise en cache dans le fichier Web.config.

Pour créer et mettre à jour le fichier Web.config

  1. Si votre site Web a déjà un fichier Web.config, allez à l'étape 4.

  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre site Web, puis cliquez sur Ajouter un nouvel élément.

  3. Dans la boîte de dialogue Ajouter un élément, cliquez sur Fichier de configuration Web puis cliquez sur Ajouter.

    Assurez-vous d'utiliser le nom Web.config.

  4. Ajoutez le XML suivant au fichier Web.config comme un enfant de l'élément system.web :

    <!-- caching section group -->
    <caching>
      <sqlCacheDependency enabled = "true" pollTime = "1000" >
        <databases>
          <add name="Northwind" 
             connectionStringName="NorthwindConnectionString1"
             pollTime = "1000"
          />
        </databases>
      </sqlCacheDependency>
    </caching>
    
    Remarque :

    Le nom de chaîne de connexion NorthwindConnectionString1 a été établi précédemment lorsque vous avez créé la connexion de données. Si votre chaîne de connexion a un nom différent, remplacez-le par ce nom.

    Remarque :

    Les informations d'identification du compte spécifiées dans la chaîne de connexion doivent avoir des privilèges suffisants pour interroger la base de données.

  5. Enregistrez le fichier et fermez-le.

Test de la page avec mise en cache

Avec la mise en cache active, l'actualisation de la page ne provoque plus la mise à jour des informations de date ou une requête de base de données, car ASP.NET réalisera la demande de page à partir du cache.

Pour tester la page avec mise en cache

  • Appuyez sur CTRL+F5 pour exécuter la page.

    Notez que les informations de date restent les mêmes à chaque actualisation de page. La page est récupérée du cache.

Modification des données

Maintenant vous pouvez modifier les données dans la base de données et voir que le cache est invalidé et qu'une page est créée.

Pour modifier les données :

  1. Dans l'Explorateur de serveurs (Explorateur de données dans Visual Web Developer Express), développez le nœud Connexions de données.

  2. Développez la connexion que vous avez créée précédemment.

  3. Développez le nœud Tables.

  4. Cliquez avec le bouton droit sur Employees, puis cliquez sur Afficher les données de la table.

  5. Mettez à jour la base de données en modifiant n'importe quel champ de la table de données, en vérifiant que c'est un champ affiché par votre page Web.

    Vous pouvez également utiliser le volet SQL (si le volet SQL n'est pas visible, dans le menu Concepteur de requêtes, cliquez sur Volet, puis cliquez sur SQL). Entrez une commande SQL directement, puis cliquez sur le bouton Exécuter SQL dans la barre d'outils Concepteur de requêtes. Par exemple, exécutez la commande suivante :

    UPDATE dbo.Employees SET LastName = 'Doe' WHERE (EmployeeID = 5)
    

    Cela remplace le nom de l'employé 5 par Doe.

  6. Fermez l'affichage des données.

Test de la dépendance de cache SQL

Vous pouvez maintenant tester la page pour voir si les données et les informations de date ont changé.

Pour tester la dépendance de cache SQL

  1. Appuyez sur CTRL+F5 pour exécuter la page.

    Notez que les informations de date ont changé et que les nouvelles données sont affichées.

  2. Appuyez sur CTRL+F5 pour exécuter la page à nouveau.

    Cette fois-ci, les informations de date restent les mêmes, parce que les données n'ont pas été modifiées et que la page est récupérée encore une fois du cache.

Étapes suivantes

Vous pouvez également mettre en cache des pages à l'aide d'autres paramètres. Pour plus d'informations, consultez Procédure pas à pas : utilisation de la mise en cache de sortie pour améliorer les performances d'un site Web. Si vous n'êtes pas familiarisé avec l'accès aux données, consultez Procédure pas à pas : accès aux données de base dans les pages Web.

Voir aussi

Concepts

Mise en cache dans ASP.NET avec la classe SqlCacheDependency

Référence

DefaultHttpCachePolicy

OutputCacheSettingsSection