Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

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

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
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.

back to the top

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)
back to the top

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
back to the top

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:
  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.
back to the top

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.
back to the top

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.

back to the top
Informationsquellen
Weitere Informationen über die WebMethodAttribute.CacheDuration- Eigenschaft und die WebMethodAttribute -Klasse finden Sie unter das folgende Thema in der .NET Framework-Klasse Dokumentation: 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: back to the top

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 318299 – Letzte Überarbeitung: 08/28/2007 06:26:02 – Revision: 6.5

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

  • kbmt kbcaching kbhowtomaster KB318299 KbMtde
Feedback
>async=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" >;t=">ay - Español
Venezuela - Español
://c1.microsoft.com/c.gif?DI=4050&did=1&t=">id=1&t=">.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> amp;t=">rotocol) + "//c.microsoft.com/ms.js'><\/script>"); &t=">