5

Ho creato un sito Web basato su ASP.NET 4. Inizialmente ho eseguito il sito predefinito come è stato generato da Visual Studio ASP.NET 4 modello di applicazione Internet. Ho appena premuto il pulsante Debug e IE è stato avviato, è stato collegato a http://localhost:1341/ e caricato la pagina di benvenuto predefinita del mio sito web. Tutto sembrava a posto, così ho iniziato a riprogettare Index.cshtml.Il server di sviluppo ASP.NET di Visual Studio continua a restituire le pagine precedenti

Dopo aver ridisegnato, ho lanciato di nuovo il sito. E durante la navigazione, ho notato che se faccio clic sul pulsante Indietro del browser, ottengo la vecchia versione cache della prima pagina e devo premere Aggiorna nel browser per ottenere quello nuovo.

così ho aggiunto

<meta http-equiv="PRAGMA" content="NO-CACHE"> 

e

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     // prevent caching 
     HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); 
     HttpContext.Current.Response.Cache.SetValidUntilExpires(false); 
     HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches); 
     HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     HttpContext.Current.Response.Cache.SetNoStore(); 
    } 

al mio sito web.

Quindi ho cancellato la cache di IE utilizzando le opzioni di IE. Ho anche pulito la mia cartella Local \ Temp.

Tuttavia, ho ottenuto il risultato 304 nella scheda Rete degli strumenti di sviluppo di IE quando si preme il pulsante Indietro nel browser.

L'unico modo per ottenere la nuova pagina riprogettata è utilizzare Cache-> Aggiorna sempre dal server. Potrei farlo a scopo di sviluppo, ma mi sto solo facendo un casino - da dove arriva quella pagina molto vecchia da quando torno indietro?

Durante il debug, in Visual Studio viene visualizzato un nuovo elemento dell'albero in Esplora soluzioni. Questo nuovo elemento si chiama documenti Script. Sotto di esso, c'è un elemento di Windows Internet Explorer che contiene l'elemento localhost ... e quando lo apro - sì, questa è la vecchia pagina che viene in IE quando premo il pulsante Indietro! In quale posizione Visual Studio (o server ASP.NET Dev) memorizza la pagina "localhost"?

Come sbarazzarmi di quella pagina bloccata e interrompere IE (o forse anche il server ASP.Dev) dalla memorizzazione nella cache del mio localhost/prima pagina? Come posso cancellare quella vecchia pagina per sempre?

spero, la nuova pagina non verrà memorizzata nella cache allo stesso modo, perché ho aggiunto ad esso ...

+0

Questo non è un problema di codice; è un problema di IE e conosci già il lavoro svolto in base al tuo post. –

+2

Ma da dove viene ricavata la vecchia pagina e perché appare anche in Visual Studio Solution explorer durante il debug? Ho pulito ogni posto che conosco (cache IE, cartella Temp), ma comunque quella prima pagina è memorizzata da qualche altra parte ... – JustAMartin

+0

Sono d'accordo. E non penso che questo sia un problema di IE. È un problema con Cassini (anche cancellato la cache ma il problema si verifica ancora), Visual Studio o IE in modalità di debug. Succede solo in "modalità di sviluppo" e solo quando si utilizza il pulsante Indietro o equivalente. È il tipo di gotcha che guiderà tutti i dadi sviluppatori (ben più dadi). Mi piacerebbe anche sapere dove è conservata questa vecchia copia perché probabilmente aiuterà a risolverlo. – Swanny

risposta

0

aggiungere

<meta http-equiv="CACHE-CONTROL" content="NO-CACHE"/> 
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT"> 
Problemi correlati