RequestCacheLevel Enumeration

Definition

Gibt das Cacheverhalten für Ressourcen an, die mithilfe von WebRequest und den hiervon abgeleiteten Klassen abgerufen werden.

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
Vererbung
RequestCacheLevel

Felder

BypassCache 1

Führt eine Anforderung mithilfe des Servers aus. Zwischen Client und Server werden keine Einträge aus Caches abgerufen, zu Caches hinzugefügt oder aus Caches entfernt. Dies ist das Standardcacheverhalten, das in der mit .NET Framework gelieferten Computerkonfigurationsdatei angegeben ist.

CacheIfAvailable 3

Führt eine Anforderung einer Ressource aus dem Cache aus, wenn die Ressource verfügbar ist, und sendet andernfalls eine Anforderung einer Ressource an den Server. Wenn das angeforderte Element in einem Cache zwischen Client und Server verfügbar ist, wird die Anforderung möglicherweise durch den Zwischencache ausgeführt.

CacheOnly 2

Führt eine Anforderung mithilfe der lokal zwischengespeicherten Ressource aus. Sendet keine Anforderung eines Elements, das sich nicht im Cache befindet. Wenn diese Cacherichtlinienebene angegeben ist und sich das Element nicht im Clientcache befindet, wird eine WebException-Ausnahme ausgelöst.

Default 0

Führt eine Anforderung einer Ressource entweder mithilfe der zwischengespeicherten Kopie der Ressource oder durch Senden einer Anforderung der Ressource an den Server aus. Die ausgeführte Aktion wird durch die aktuelle Cacherichtlinie und das Alter des Inhalts im Cache bestimmt. Dies ist die Cacheebene, die von den meisten Anwendungen verwendet werden muss.

NoCacheNoStore 6

Führt eine Anforderung niemals mithilfe von Ressourcen aus dem Cache aus und zwischenspeichert keine Ressourcen. Wenn die Ressource im lokalen Cache vorhanden ist, wird sie entfernt. Diese Richtlinienebene gibt für Zwischencaches an, dass sie die Ressource entfernen sollen. Im HTTP-Cacheprotokoll erfolgt dies mithilfe der no-cache-Cachesteuerdirektive.

Reload 5

Führt eine Anforderung mithilfe des Servers aus. Die Antwort wird möglicherweise im Cache gespeichert. Im HTTP-Cacheprotokoll erfolgt dies durch die no-cache-Cachesteuerdirektive und den no-cache-Pragma-Header.

Revalidate 4

Erfüllt eine Anforderung, indem die zwischengespeicherte Kopie der Ressource zurückgegeben wird, wenn der Timestamp der zwischengespeicherten Ressource dem Timestamp der Ressource auf dem Server entspricht. Andernfalls wird die Ressource vom Server heruntergeladen, dem Aufrufer dargestellt und im Cache gespeichert.

Beispiele

Im folgenden Codebeispiel wird eine Richtlinie erstellt, die nur dann eine Ressource zurückgibt, wenn sie sich im Cache befindet.

static WebResponse^ GetResponseFromCache( Uri^ uri )
{
   RequestCachePolicy^ policy = gcnew RequestCachePolicy( RequestCacheLevel::CacheOnly );
   WebRequest^ request = WebRequest::Create( uri );
   request->CachePolicy = policy;
   WebResponse^ response = request->GetResponse();
   Console::WriteLine( L"Policy level is {0}.", policy->Level );
   Console::WriteLine( L"Is the response from the cache? {0}", response->IsFromCache );
   return response;
}
public static WebResponse GetResponseFromCache(Uri uri)
{
     RequestCachePolicy policy =
        new  RequestCachePolicy( RequestCacheLevel.CacheOnly);
    WebRequest request = WebRequest.Create(uri);
    request.CachePolicy = policy;
    WebResponse response = request.GetResponse();
    Console.WriteLine("Policy level is {0}.", policy.Level.ToString());
    Console.WriteLine("Is the response from the cache? {0}", response.IsFromCache);
    return response;
}

Hinweise

Elemente dieser Enumeration werden verwendet, um Objekte zu initialisieren RequestCachePolicy . Die aktuelle Einstellung für ein RequestCachePolicy Objekt ist in der HttpRequestCachePolicy.Level Eigenschaft verfügbar.

Dieser BypassCache Wert ist das Standardcacheverhalten, das in der Computerkonfigurationsdatei angegeben ist, die mit dem .NET Framework ausgeliefert wird. Zwischen Client und Server werden keine Einträge aus Caches abgerufen, zu Caches hinzugefügt oder aus Caches entfernt.

Die HttpWebRequest.DefaultCachePolicy Eigenschaft wird verwendet, um die Standardcacherichtlinie für HttpWebRequest Instanzen abzurufen oder festzulegen. Die WebRequest.CachePolicy Eigenschaft wird verwendet, um die Standardcacherichtlinie für eine WebRequest Instanz abzurufen oder festzulegen. Die WebRequest.CachePolicy Eigenschaft wird verwendet, um die Cacherichtlinie für eine bestimmte Anforderung abzurufen oder festzulegen.

Wenn das Cacheverhalten CacheIfAvailable Revalidateoder eine Kopie einer angeforderten Ressource nur dem Cache hinzugefügt wird, wenn der Antwortstrom für die Ressource abgerufen und am Ende des Datenstroms gelesen wird. Bei CacheIfAvailablenachfolgenden Anforderungen für dieselbe Ressource würde eine zwischengespeicherte Kopie verwendet. Bei Revalidatefolgenden Anforderungen für dieselbe Ressource würde eine zwischengespeicherte Kopie verwendet, wenn der Zeitstempel für die zwischengespeicherte Ressource identisch ist wie der Zeitstempel der Ressource auf dem Server.

Eine Kopie einer Ressource wird nur dem Cache hinzugefügt, wenn der Antwortdatenstrom für die Ressource abgerufen und am Ende des Datenstroms gelesen wird. Eine andere Anforderung für dieselbe Ressource könnte also eine zwischengespeicherte Kopie verwenden, je nach Standardcacherichtlinienebene für diese Anforderung.

Gilt für

Siehe auch