Comment effectuer sortie mise en cache avec les services Web dans Visual C# .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 318299 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

note Les espaces de noms bibliothèque de classes .NET Framework suivants sont référencés dans cet article :
  • System.Web.Services
  • System.Text
Cet article étape par étape explique comment créer un exemple de service Web ASP.NET qui utilise la mise en cache de sortie. La mise en cache de sortie met en cache le résultat de réponse de sortie d'un service Web en fonction de l'attribut de durée est spécifié pour un WebMethod correspondant.

note Dans ASP.NET 2.0, la méthode HTTP de la page de test a modifié de GET à POST. Toutefois, publications ne sont pas mis en normalement cache. Si vous modifiez la page de test dans une application de service Web ASP.NET 2.0 pour utiliser GET, mise en cache fonctionne correctement. En outre, HTTP indique qu'un agent utilisateur (le navigateur ou application appelante) doit être en mesure de remplacer la mise en cache de serveur en définissant l'en-tête de contrôle du cache sur « no-cache ». Par conséquent, les applications ASP.NET ignorent résultats mis en cache lorsqu'ils ne trouvent un en-tête-cache.

Configuration requise

La liste suivante met en évidence le matériel recommandé, logiciel infrastructure réseau et service packs sont requis :
  • Microsoft Windows 2000 Professionnel, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server ou Microsoft Windows XP
  • Microsoft .NET framework
  • Microsoft Internet Information Services (IIS)

Créer une application nouveau service de Web ASP.NET

Créer une nouvelle application service Web ASP.NET nommée WSCacheSample :
  1. Démarrez Visual Studio .NET.
  2. Dans le menu Fichier , pointez sur Nouveau , puis cliquez sur projets pour démarrer l'Assistant Nouveau projet.
  3. Sous types de projets , sélectionnez Visual C# . Sous modèle , sélectionnez le service Web ASP.NET .
  4. Dans la zone Emplacement , remplacez WebService # dans le chemin D'URL par le nom de votre projet, WSCacheSample . Si vous utilisez le serveur local, laissez le nom du serveur http://localhost, afin que la zone Emplacement ressemble à ceci :
    http://localhost/WSCacheSample

Créer le service Web exemple

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le n?ud de projet, pointez sur Ajouter et puis cliquez sur Service Web ajouter .
  2. Pour le nom, tapez CacheDemo.asmx et puis cliquez sur Ouvrir . Le service Web s'ouvre en mode Création.
  3. Cliquez avec le bouton droit sur le service Web, puis cliquez sur Afficher le code .
  4. Ajoutez le code suivant au fichier de classe CacheDemo.asmx.cs. Cela ajoute un attribut WebMethod nommé GetCacheEntryTime avec un CacheDuration de 60 secondes.
    [WebMethod(CacheDuration=60)]
    public string GetCacheEntryTime(string Name)
    {
    	StringBuilder sb = new StringBuilder("Hi ");
    	sb.Append(Name);
    	sb.Append(", the Cache entry was made at ");
    	sb.Append(System.DateTime.Now.ToString());
    	
    	return(sb.ToString());
    }
    						
    Remarque : par défaut, le CacheDuration d'un attribut WebMethod est définie sur 0, ce qui signifie qu'il n'est pas mis en cache.
  5. Étant donné que l'exemple de code utilise la méthode StringBuilder , inclure une référence à l'espace de noms System.Text . La liste d'espace de noms pour le service Web ressemble à ceci :
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Web;
    using System.Web.Services;
    using System.Text;
    						
    Remarque : pour plus d'informations sur la classe StringBuilder , reportez-vous à l'adresse suivante MSDN (Microsoft Developer Network) :
    Classe StringBuilder
    http://msdn2.microsoft.com/en-us/library/system.text.stringbuilder(vs.71).aspx
  6. Dans Visual Studio .NET IDE, cliquez sur Générer la solution dans le menu Générer .
  7. Dans le menu Fichier , cliquez sur Enregistrer tout pour enregistrer le projet et les fichiers associés.

Testez le projet

Maintenant que vous avez créé le service Web de CacheDemo exemple, exécutez la GetCacheEntryTime WebMethod pour voir les effets de la valeur d'attribut CacheDuration :
  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur CacheDemo.asmx , puis cliquez sur Afficher dans le navigateur .

    Le fichier .asmx s'ouvre dans le navigateur, et l'attribut WebMethod GetCacheEntryTime est répertorié comme un élément à puces en haut de la page.
  2. Cliquez sur le lien GetCacheEntryTime .
  3. Dans la zone Nom de la méthode, tapez Jean et cliquez sur Invoke pour exécuter l'attribut WebMethod et renvoyer le résultat XML. Notez l'horodatage qui est renvoyée dans le message.

    Remarque : si vous aider aux WebServices page n'apparaît pas, vous pouvez exécuter la méthode de Service Web en tapant celui-ci dans la zone Adresse dans le site Web navigateur :
    http://localhost/wscachesample/cachedemo.asmx/GetCacheEntryTime?Name=Joe
    					
  4. Exécutez le WebMethod à nouveau en tapant Jean . Remarque : Si vous exécutez l'attribut WebMethod dans la seconde période qui est indiquée par l'attribut CacheDuration 60, le même tampon de temps s'affiche.
  5. Répétez les étape 4, mais tapez Amy au lieu de Jean dans la zone Nom pour le paramètre attribut WebMethod .

    Notez que le résultat de tampon de temps est différent. Ce problème se produit car la sortie par défaut la mise en cache de résultat est basée sur les paramètres de l'attribut WebMethod . Dans cet exemple, Jean est la valeur de paramètre pour les deux premiers tests et le résultat mis en cache est renvoyé pour le test de deuxième. Lorsque vous utilisez Amy dans le troisième test, vous recevez un nouveau résultat. Si vous répétez le test de 60 secondes, vous recevrez un résultat mis en cache de sortie. La différence de la sortie de la mise en cache de la version concerne le paramètre de l'attribut WebMethod .

Résolution des problèmes

Lorsque vous décider à implémenter la mise en cache de sortie pour votre service Web, n'oubliez pas que serveur de ressources peuvent être affectées négatif si les paramètres d'attribut WebMethod qui sont associés les demandes de varier largement ou si les réponses impliquent de grandes quantités de données.

Références

Pour plus d'informations sur la propriété WebMethodAttribute.CacheDuration et la classe WebMethodAttribute , voir la rubrique suivante dans la classe du .NET Framework documentation Library :
WebMethodAttribute.CacheDuration, propriété
http://msdn2.microsoft.com/en-us/library/system.web.services.webmethodattribute.cacheduration(vs.71).aspx
Pour plus d'informations sur les services Web, reportez-vous aux sites Web MSDN aux adresses suivantes :
Instructions de conception pour services Web XML créés à l'aide d'ASP.NET
http://msdn2.microsoft.com/en-us/library/w8excbb0(vs.71).aspx

À l'aide de l'attribut WebMethod
http://msdn2.microsoft.com/en-us/library/byxd99hx(vs.71).aspx
Pour plus d'exemples, la documentation et les liens associés à la programmation avec .NET Framework, reportez-vous à l'adresse CodePlex suivante :
http://www.codeplex.com

Propriétés

Numéro d'article: 318299 - Dernière mise à jour: mardi 28 août 2007 - Version: 6.5
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 2.0
  • Microsoft Web Services Enhancements for Microsoft .NET 1.1
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft Visual C# .NET 2002 Initiation
Mots-clés : 
kbmt kbcaching kbhowtomaster KB318299 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 318299
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com