RequestCacheLevel Enum

Definition

Anger cachelagringsbeteende för resurser som hämtas med hjälp av WebRequest och dess härledda klasser.

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

Fält

Name Värde Description
Default 0

Uppfyller en begäran om en resurs antingen med hjälp av den cachelagrade kopian av resursen eller genom att skicka en begäran om resursen till servern. Den åtgärd som vidtas bestäms av den aktuella cacheprincipen och innehållets ålder i cacheminnet. Det här är den cachenivå som ska användas av de flesta program.

BypassCache 1

Uppfyller en begäran med hjälp av servern. Inga poster hämtas från cacheminnen, läggs till i cacheminnen eller tas bort från cacheminnen mellan klienten och servern. Det här är standardbeteendet för cachen som anges i datorkonfigurationsfilen som levereras med .NET Framework.

CacheOnly 2

Uppfyller en begäran med hjälp av den lokalt cachelagrade resursen. skickar inte någon begäran om ett objekt som inte finns i cacheminnet. När den här cacheprincipnivån har angetts utlöses ett WebException undantag om objektet inte finns i klientcachen.

CacheIfAvailable 3

Uppfyller en begäran om en resurs från cacheminnet, om resursen är tillgänglig. annars skickar du en begäran om en resurs till servern. Om det begärda objektet är tillgängligt i någon cache mellan klienten och servern kan begäran uppfyllas av den mellanliggande cachen.

Revalidate 4

Uppfyller en begäran med hjälp av den cachelagrade kopian av resursen om tidsstämpeln är samma som tidsstämpeln för resursen på servern. Annars laddas resursen ned från servern, presenteras för anroparen och lagras i cacheminnet.

Reload 5

Uppfyller en begäran med hjälp av servern. Svaret kan sparas i cacheminnet. I HTTP-cachelagringsprotokollet uppnås detta med hjälp av no-cache cachekontrolldirektivet och no-cache-huvudet Pragma .

NoCacheNoStore 6

Uppfyller aldrig en begäran med hjälp av resurser från cacheminnet och cachelagr inte resurser. Om resursen finns i den lokala cachen tas den bort. Den här principnivån anger för mellanliggande cacheminnen att de ska ta bort resursen. I HTTP-cachelagringsprotokollet uppnås detta med hjälp av no-cache cachekontrolldirektivet.

Exempel

I följande kodexempel skapas en princip som endast returnerar en resurs om den finns i cacheminnet.

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;
}

Kommentarer

Medlemmar i den här uppräkningen används för att initiera RequestCachePolicy objekt. Den aktuella inställningen för ett RequestCachePolicy objekt är tillgänglig i egenskapen HttpRequestCachePolicy.Level .

Det här värdet BypassCache är standardbeteendet för cachen som anges i datorkonfigurationsfilen som levereras med .NET Framework. Inga poster hämtas från cacheminnen, läggs till i cacheminnen eller tas bort från cacheminnen mellan klienten och servern.

Egenskapen HttpWebRequest.DefaultCachePolicy används för att hämta eller ange standardcacheprincipen för HttpWebRequest instanser. Egenskapen WebRequest.CachePolicy används för att hämta eller ange standardcacheprincipen för en WebRequest instans. Egenskapen WebRequest.CachePolicy används för att hämta eller ange cacheprincipen för en specifik begäran.

Om cachebeteendet är CacheIfAvailable eller Revalidateläggs en kopia av en begärd resurs bara till i cacheminnet om svarsströmmen för resursen hämtas och läss till slutet av dataströmmen. Med CacheIfAvailableanvänder efterföljande begäranden för samma resurs en cachelagrad kopia. Med Revalidateanvänder efterföljande begäranden för samma resurs en cachelagrad kopia om tidsstämpeln för den cachelagrade resursen är samma som tidsstämpeln för resursen på servern.

En kopia av en resurs läggs bara till i cacheminnet om svarsströmmen för resursen hämtas och läss till slutet av dataströmmen. En annan begäran för samma resurs kan därför använda en cachelagrad kopia, beroende på standardnivån för cacheprincip för den här begäran.

Gäller för

Se även