Zum Durchführen Ausgabezwischenspeicherung mit Webdiensten in Visual c# .NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 318299 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Hinweis: In diesem Artikel werden die folgenden .NET Framework-Klassenbibliothek-Namespaces verwiesen:
  • System.Web.Services
  • System.Text
Dieser schrittweise aufgebaute Artikel beschreibt eine Stichprobe ASP.NET-Web Service erstellen, die Zwischenspeicherung der Ausgabe verwendet. Zwischenspeichern der Ausgabe speichert das Ergebnis Ausgabe Antwort eines Webdienstes basierend auf dem Duration -Attribut, das für eine entsprechende WebMethod angegeben ist.

Hinweis: In ASP.NET 2.0 wurde die HTTP-Methode der Testseite von GET zu POST geändert. Allerdings werden POSTs normalerweise nicht zwischengespeichert. Wenn Sie ändern GET die Testseite in einer ASP.NET 2.0-Webdienstanwendung mit Zwischenspeichern funktioniert ordnungsgemäß. Darüber hinaus gibt an HTTP, dass ein Benutzeragent (der Browser oder die aufrufende Anwendung) können überschreiben Server Zwischenspeicherung durch Festlegen den Cache-Control-Header zum "Nein-Cache" sein soll Daher ignorieren ASP.NET-Anwendungen zwischengespeicherte Ergebnisse, wenn Sie eine "No-Cache"-Header gefunden.

Voraussetzungen

Die folgende Liste führt die empfohlene Hardware, Software, Netzwerkinfrastruktur und Service Packs, die erforderlich sind:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server oder Microsoft Windows XP
  • Microsoft .NET framework
  • Microsoft Internetinformationsdienste (IIS)

Erstellen einer neuen ASP.NET-Web Service-Anwendung

Erstellen Sie eine neue ASP.NET-Web Service-Anwendung mit dem Namen WSCacheSample:
  1. Starten Sie Visual Studio .NET.
  2. Im Menü Datei auf neu , und klicken Sie auf Projekt , um den Assistenten für neue Projekt zu starten.
  3. Wählen Sie unter Projekttypen Visual c# . unter Vorlagen auf ASP.NET-Webdienst.
  4. Ersetzen Sie im Feld Ort "WebService #" im URL-Pfad durch den Namen des Projekts, WSCacheSample . Wenn Sie den lokalen Server verwenden, behalten Sie den Namen des Servers als http://localhost, so dass das Feld Ort etwa so aussieht:
    http://localhost/WSCacheSample

Erstellen Sie den Beispiel-Webdienst

  1. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, zeigen Sie auf Hinzufügen und klicken Sie dann auf Webdienst hinzufügen .
  2. Geben Sie für den Namen CacheDemo.asmx , und klicken Sie dann auf Öffnen . Der Webdienst wird in der Entwurfsansicht geöffnet.
  3. Klicken Sie mit der rechten Maustaste auf den Webdienst, und klicken Sie dann auf Code anzeigen .
  4. Fügen Sie den folgenden Code zu der CacheDemo.asmx.cs-Klassendatei. Dadurch wird ein WebMethod -Attribut mit dem Namen GetCacheEntryTime mit einem CacheDuration von 60 Sekunden hinzugefügt.
    [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());
    }
    						
    Hinweis : standardmäßig CacheDuration für ein WebMethod -Attribut auf 0 festgelegt, d. h. nicht zwischengespeichert wird.
  5. Da der Beispielcode die StringBuilder -Methode verwendet, nehmen Sie einen Verweis auf die System.Text -Namespace auf. Der Namespace aufgelistet, für der Webdienst Dies ähnelt:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Web;
    using System.Web.Services;
    using System.Text;
    						
    Hinweis : Weitere Informationen über die StringBuilder -Klasse den folgenden Microsoft Developer Network (MSDN)-Website:
    StringBuilder-Klasse
    http://msdn2.microsoft.com/en-us/library/system.text.stringbuilder(vs.71).aspx
  6. Klicken Sie im Menü Erstellen auf Projektmappe erstellen in der IDE von Visual Studio .NET.
  7. Klicken Sie im Menü Datei auf Alles speichern , um das Projekt und die zugehörigen Dateien speichern.

Testen Sie das Projekt

Nun, da Sie Beispiel CacheDemo Web Service erstellt haben, führen Sie die GetCacheEntryTime - WebMethod um die Auswirkungen der Einstellung CacheDuration -Attribut zu sehen:
  1. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf CacheDemo.asmx und klicken Sie dann auf in Browser anzeigen .

    Die ASMX-Datei wird im Browser geöffnet, und das GetCacheEntryTime - WebMethod -Attribut wird einer Aufzählung am oberen Rand der Seite aufgelistet.
  2. Klicken Sie auf die GetCacheEntryTime -Verknüpfung.
  3. Geben Sie im Feld Name für die Methode Joe , und klicken Sie dann auf Aufrufen , um führen Sie das WebMethod -Attribut und das XML-Ergebnis zurückzugeben. Beachten Sie den Zeitstempel, der in der Nachricht zurückgegeben wird.

    Hinweis : Wenn die Webdienste unterstützen Seite nicht angezeigt, führen Sie die Webdienst -Methode, indem Sie Folgendes im Adressfeld im Web eingeben Browser:
    http://localhost/wscachesample/cachedemo.asmx/GetCacheEntryTime?Name=Joe
    					
  4. Führen Sie die WebMethod erneut, indem Sie Joe . Hinweis : Wenn Sie das WebMethod -Attribut in 60 Sekunden Zeitraum, die durch das CacheDuration -Attribut angegeben wird ausführen, die dieselben Zeitstempel angezeigt.
  5. Wiederholen Sie die Schritt 4, aber geben Sie Cornelia anstelle von Joe im Feld Name für den Parameter WebMethod -Attribut.

    Beachten Sie, dass das Ergebnis immer Stempel unterscheidet. Dies geschieht, weil das Ergebnis mit Ausgabezwischenspeicherung auf die Parameter des WebMethod -Attribut basiert. In diesem Beispiel Joe ist der Parameter für die ersten beiden Tests und die zwischengespeicherte Ausgabe für den zweiten Test zurückgegeben. Wenn Sie in der dritten Test Amy verwenden, erhalten Sie ein neues Ergebnis. Wenn Sie den Test in 60 Sekunden wiederholen, erhalten Sie ein Ergebnis zwischengespeicherte Ausgabe. Der Unterschied in der Ausgabezwischenspeicherung Version bezieht sich auf der Parameter des WebMethod -Attribut.

Problembehandlung

Werden Sie, ob soll oder nicht Zwischenspeichern der Ausgabe für den Webdienst zu implementieren, denken Sie daran, dass Server Ressourcen negativ beeinflusst werden können, wenn die WebMethod -Attribut-Parameter, die die Anforderungen zugeordnet sind stark variieren, oder wenn die Antworten große Mengen von Daten umfassen.

Informationsquellen

Weitere Informationen über die WebMethodAttribute.CacheDuration- Eigenschaft und die WebMethodAttribute -Klasse finden Sie unter das folgende Thema in der .NET Framework-Klasse Dokumentation:
WebMethodAttribute.CacheDuration-Eigenschaft
http://msdn2.microsoft.com/en-us/library/system.web.services.webmethodattribute.cacheduration(vs.71).aspx
Zusätzliche Informationen zu Webdiensten finden Sie auf der folgenden MSDN-Websites:
Entwurfsrichtlinien für mit ASP.NET erstellten XML-Webdiensten
http://msdn2.microsoft.com/en-us/library/w8excbb0(vs.71).aspx

Verwenden des WebMethod-Attributs
http://msdn2.microsoft.com/en-us/library/byxd99hx(vs.71).aspx
Weitere Beispiele, Dokumentation und Links zu den Programmierung mit .NET Framework gehörenden finden Sie auf den folgenden CodePlex-Website:
http://www.codeplex.com

Eigenschaften

Artikel-ID: 318299 - Geändert am: Dienstag, 28. August 2007 - Version: 6.5
Die Informationen in diesem Artikel beziehen sich auf:
  • 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 Standard Edition
Keywords: 
kbmt kbcaching kbhowtomaster KB318299 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 318299
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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