2015-04-29 13 views
11

Faccio qualche sviluppo web per il lavoro e il più grande successo per la mia produttività viene da IIS. Memorizza nella cache i file che non verranno aggiornati anche quando vengono modificati, a meno che non riavvii IIS. Nello specifico, mi riferisco ai file html, js e css. Questo problema mi costringe a fermarmi e ad avviare la mia applicazione web costantemente. Dal momento che ho Windows 7 credo di avere ISS 7.5. Sto usando IIS Express. È così frustrante che preferirei che IIS non memorizzi mai nulla, mai. Sto bene con una soluzione che blocca tutte le forme di caching o solo per il progetto su cui sto lavorando.Come posso impedire a IIS di memorizzare nella cache qualsiasi file, in qualsiasi caso?

Gestione IIS non disponibile. Non si trova in Sistema e sicurezza -> Strumenti di amministrazione -> Gestione IIS come suggerito da https://technet.microsoft.com/en-us/library/cc770472%28v=ws.10%29.aspx. Inoltre, la ricerca di inetmgr nella casella Inizia ricerca non mi dà risultati. Per questo motivo, sto cercando una correzione per il file applicationhost.config di IIS.

Ho provato a mettere il seguente nel mio applicationhost.config che non funziona:

<location path="ProjectName"> 
    <system.webServer> 
     <staticContent> 
      <clientCache cacheControlCustom="public" cacheControlMode="DisableCache" /> 
     </staticContent> 
     <caching enabled="false" enableKernelCache="false"></caching> 
    </system.webServer> 
</location> 

La domanda più vicino su StackOverflow al mio problema era IIS cached files never replaced. Tuttavia, Fiddler mi mostra che i vecchi file vengono inviati al browser anche dopo che sono stati modificati.

In che modo IIS può inviare al mio browser i file aggiornati senza doverlo riavviare?

risposta

-3

Piuttosto possibile è il browser che è il colpevole. Hai provato ctrl + F5?

+0

I browser sono un problema e i loro sviluppatori dovrebbero inserire un'opzione per disabilitare il caching nei siti elencati. Comunque per la maggior parte i browser faranno ciò che il server dice loro che significa server config ... fino a quando gli sviluppatori del browser non tireranno fuori le dita. – m12lrpv

7

Sospetto di aver abilitato il caching dell'output, questo mostrerebbe il comportamento che si sta descrivendo dove riciclare il pool di app o riavviare IIS li cancella e consente di vedere il nuovo contenuto.

Questa pagina fornisce ulteriori informazioni, http://www.iis.net/learn/manage/managing-performance-settings/walkthrough-iis-output-caching

Se si utilizza IIS espresso allora è probabile che il caching è impostato a livello di applicazione nel web.config, o sulle singole pagine.

è necessario impostare

<caching> 
    <outputCache enableOutputCache="false" /> 
</caching> 

o se IIS 7+ (quale IIS Express sarà)

<system.webServer> 
    <caching enabled="false" /> 
</system.webServer> 
1

Se qualcuno inciampa su questo e vuole un "clic del mouse" modo di disabilitazione cache in IIS 7 o così ... ecco una risposta dai forum IIS su https://forums.iis.net/t/959070.aspx:

Ecco un aggiornamento per IIS 7.5 (in W indows 7). Disabilitare la cache è una cosa buona da fare durante lo sviluppo quando non sei interessato alle prestazioni di e vuoi vedere le modifiche immediatamente. Velocizza il processo di sviluppo. - Avviare Gestione IIS (digitare IIS in programmi di ricerca e file nel menu di avvio) - Passare al sito desiderato nell'albero Connections (Sito Web predefinito) - Aprire la cache di output - Modificare le impostazioni della funzione - Deselezionare Abilita cache e Abilita kernel cache di

Si ottiene un impostazione nel file web.config o meno così:

<caching enabled="false" enableKernelCache="false"> 
      <profiles> 
       <add extension=".css" policy="DontCache" kernelCachePolicy="DontCache" /> 
       <add extension=".script" policy="DontCache" kernelCachePolicy="DontCache" /> 
      </profiles> 
     </caching> 

Quindi, nessuna modifica qui ..

Problemi correlati