Freigeben über


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 eine Ressource nur 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

Member 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 wird, die mit dem .NET Framework enthalten ist. 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 oder RevalidateistCacheIfAvailable, wird dem Cache nur dann eine Kopie einer angeforderten Ressource hinzugefügt, wenn der Antwortdatenstrom für die Ressource abgerufen und am Ende des Datenstroms gelesen wird. Mit CacheIfAvailablewürden nachfolgende Anforderungen für dieselbe Ressource eine zwischengespeicherte Kopie verwenden. Bei Revalidatewürden nachfolgende Anforderungen für dieselbe Ressource eine zwischengespeicherte Kopie verwenden, wenn der Zeitstempel für die zwischengespeicherte Ressource mit dem Zeitstempel der Ressource auf dem Server identisch ist.

Eine Kopie einer Ressource wird dem Cache nur hinzugefügt, wenn der Antwortdatenstrom für die Ressource abgerufen und am Ende des Datenstroms gelesen wird. Daher kann eine andere Anforderung für dieselbe Ressource abhängig von der Standardcacherichtlinienebene für diese Anforderung eine zwischengespeicherte Kopie verwenden.

Gilt für:

Weitere Informationen