Freigeben über


ASP.NET-Zwischenspeicherungsintegration

Im Beispiel AspNetCachingIntegration wird gezeigt, wie der ASP.NET-Ausgabecache mit dem WCF-WEB HTTP-Programmiermodell verwendet wird. Dieses Thema befasst sich mit den Integrationsfunktion des ASP.NET-Ausgabecaches.

Zeigt

Integration in den ASP.NET-Ausgabecache

Diskussion (Discussion)

Im Beispiel wird AspNetCacheProfileAttribute verwendet, um den ASP.NET-Ausgabecache mit dem WCF-Dienst (Windows Communication Foundation) zu verwenden. Das AspNetCacheProfileAttribute wird auf Dienstvorgänge angewendet und gibt den Namen eines Cacheprofils in einer Konfigurationsdatei an, die auf Antworten vom angegebenen Vorgang angewendet werden soll.

In der Datei „Service.cs“ des Beispielprojekts „Service“ werden die Vorgänge GetCustomer und GetCustomers mit dem Attribut AspNetCacheProfileAttribute markiert, das den Cacheprofilnamen „CacheFor60Seconds“ angibt. In der Datei „Web.config“ des Projekts „Service“ wird das Cacheprofil „CacheFor60Seconds“ unter dem <caching>-Element von <system.web> bereitgestellt. Für dieses Cacheprofil beträgt der Wert des duration-Attributs „60“. Daher werden diesem Profil zugeordnete Antworten 60 Sekunden lang im ASP.NET-Ausgabecache zwischengespeichert. Außerdem wird für dieses Cacheprofil das varmByParam-Attribut auf „format“ festgelegt, weshalb die Antworten für Anforderungen mit anderen Werten für den Abfragezeichenfolgenparameter format getrennt zwischengespeichert werden. Schließlich wird das varyByHeader-Attribut des Profils auf „Accept“ festgelegt, sodass Anforderungen mit anderen Accept-Headerwerten getrennt zwischengespeichert werden.

Program.cs im Clientprojekt zeigt, wie ein Client dieser Art mit HttpWebRequest erstellt werden kann. Beachten Sie, dass dies nur eine Möglichkeit für den Zugriff auf einen WCF-Dienst darstellt. Auf den Dienst kann auch mit anderen .NET Framework-Klassen zugegriffen werden, wie der WCF-Kanalfactory und WebClient. In anderen Beispielen im SDK (z. B. BasicHTTPService) wird gezeigt, wie diese Klassen für die Kommunikation mit einem WCF-Dienst verwendet werden.

So führen Sie das Beispiel aus

Das Beispiel umfasst drei Projekte:

  • Service: Ein Webanwendungsprojekt, das einen WCF-HTTP-Dienst enthält, der in ASP.NET gehostet wird.

  • Client: Ein Konsolenanwendungsprojekt, das Aufrufe an den Dienst sendet.

  • Common: Eine freigegebene Bibliothek, die den von „Client“ und „Service“ verwendeten Kundentyp enthält.

Während die Clientkonsolenanwendung ausgeführt wird, sendet der Client Anforderungen an den Dienst und schreibt die in den Antworten enthaltenen wichtigen Informationen in das Konsolenfenster.

So führen Sie das Beispiel aus

  1. Öffnen Sie die Projektmappe für das Beispiel der Integration von ASP.NET-Zwischenspeicherung.

  2. Drücken Sie STRG+UMSCHALT+B, um die Projektmappe zu erstellen.

  3. Wenn das Fenster Projektmappen-Explorer noch nicht geöffnet ist, drücken Sie „STRG+W+S“.

  4. Klicken Sie im Fenster Projektmappen-Explorer mit der rechten Maustaste auf das Projekt Service, und wählen Sie Neue Instanz starten aus. Der ASP.NET-Entwicklungsserver, der den Dienst hostet, wird gestartet.

  5. Klicken Sie im Fenster Projektmappen-Explorer mit der rechten Maustaste auf das Projekt Client, und wählen Sie Neue Instanz starten aus.

  6. Im eingeblendeten Clientkonsolenfenster werden der URI des ausgeführten Diensts und der URI der HTML-Hilfeseite für den ausgeführten Dienst angezeigt. Sie können die HTML-Hilfeseite jederzeit anzeigen, indem sie den URI der Hilfeseite in einem Browser eingeben.

  7. Während das Beispiel ausgeführt wird, schreibt der Client den Status der aktuellen Aktivität.

  8. Drücken Sie eine beliebige Taste, um die Clientkonsolenanwendung zu beenden.

  9. Drücken Sie UMSCHALT+F5, um das Debugging des Diensts zu beenden.

  10. Klicken Sie im Windows-Infobereich mit der rechten Maustaste auf das Symbol für den ASP.NET-Entwicklungsserver, und wählen Sie Beenden aus.