2010-09-01 25 views
6

Ho lavorato recentemente al server di sviluppo ASP.NET (su un progetto MVC e sto scoprendo che non è coerente nel modo in cui serve le modifiche I Ad esempio, apporto una modifica a C#/HTML/CSS/JS nell'ambiente dev ed eseguo la pagina, e la modifica appare sullo schermo, ma se cambio di nuovo l'HTML ed eseguo di nuovo la pagina , la nuova modifica non viene visualizzata, anche Ctrl + F5 non lo fa. Devo interrompere il server Web ed eseguire di nuovo l'app per le modifiche da aggiornare. Qualcun altro l'ha provato? C'è un modo per ordinare questo?ASP.NET Development Server non aggiorna le modifiche a markup/codice

Se sto lavorando in IIS e cambio qualcosa, un ctrl + F5 aggiornerà sempre la pagina con le modifiche apportate. Mi piacerebbe che il server di sviluppo fosse affidabile. Qualcuno ha dei suggerimenti?

+0

Sto avendo lo stesso problema esatto utilizzando Visual Studio 2008 con un .net sito web tradizionale basato 2.0 webforms. Sono contento di aver trovato questa domanda prima di chiederlo di nuovo. – NinjaBomb

+0

2 di noi con la stessa domanda e nessuna risposta! la soluzione per me è stata solo quella di uccidere il processo del server di sviluppo quando inizia a funzionare e riavviare l'applicazione. – DaveDev

+0

Questo è quello che ho fatto. Mi sta rallentando molto e mi sta facendo impazzire perché la settimana scorsa stava funzionando. Per quanto ne so, nulla è cambiato nella mia configurazione tra allora e ora. Sto iniziando a sospettare che un aggiornamento di Windows abbia qualcosa a che fare con esso, ma sembra un po 'inverosimile. – NinjaBomb

risposta

1

Prova a svuotare la cache .. su ogni richiesta

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)); 

Se ancora non funziona. Prova questo mucchio di codice a pag evento carico

Response.AppendHeader("Pragma", "no-cache"); 
Response.AppendHeader("Cache-Control", "no-cache"); 

Response.CacheControl = "no-cache"; 
Response.Expires = -1; 

response.ExpiresAbsolute = new DateTime(1900, 1, 1); 
response.Cache.SetCacheability(HttpCacheability.NoCache); 
+0

Qual è la differenza tra fare questo e uno shift + f5 per aggiornare la pagina? Ho controllato le intestazioni delle pagine che sto richiedendo e sembrano essere completamente rinnovate ogni volta. Inoltre, è necessario aggiungerlo a ciascuna pagina su cui si sta lavorando, e ricordarsi di estrarlo prima di spingere alla produzione, sembra ingombrante. – NinjaBomb

+1

No non su ogni pagina. Solo in un posto unico chiamato evento Application_BeginRequest nel file global.asax.cs. –

+0

Ogni volta che la pagina viene aggiornata, la pagina Web viene memorizzata nella cache della macchina. E caricare la pagina più veloce invece che dal server che guarda nella cache, e se trova carichi da lì. Quindi succede una cosa del genere. Ma nel codice sopra quando la prima volta che la pagina viene caricata, come nel codice sopra prima di tutto non creerà alcuna cache della richiesta corrente, ma se comunque crea la sua data di scadenza sarà impostata 1/1/1900 che è già attraversato, quindi la cache creata scadrà immediatamente dopo la prossima richiesta e creerà nuovamente una nuova scadenza con la stessa vecchia data .. e così via –

Problemi correlati