Impedire a IIS di scaricare il sito ASP.NET
-
28-10-2019 - |
Domanda
Come impedisci a un sito ASP.NET di essere scaricato da IIS?
Ho quello che potrebbe essere il sito web più stupido del mondo: una volta all'ora si sveglia e scrive un timestamp in un file di registro. Quando l'app inizia, lo dice con un timestamp nel registro e quando muore, la stessa cosa.
In IIS sono entrato nel suo pool di applicazioni e ho impostato il timeout del minimo su 0 e ho set Genera Regy Event Log Ingresso> Intervallo di tempo regolare su False.
Eppure il sito si scarica ancora circa una volta al giorno: ricevo la voce di scarico dell'app nel registro e rimane morta fino a quando non lo visiterò.
Come impedisci che lo scarica?
(Ovviamente questo sito farà di più una volta risolto questo - per ora è il più semplice possibile isolare il problema.)
Soluzione
Il pool di applicazioni ha un'altra proprietà che lo fa riciclare automaticamente ogni N (impostazione predefinita fino al 1740 o ogni 29 ore). Fai questo zero per disabilitare il riciclaggio. La proprietà è (su IIS7) sotto l'intestazione del "riciclaggio" e si chiama "intervallo di tempo regolare (minuti)"
Altri suggerimenti
Oltre alla raccomandazione di @JLEW, la guida in questo articolo è importante se si esegue un'attività/timer in background continuamente/periodicamente in ASP.NET senza l'onere di installazione/configurazione/manutenzione dei servizi di Windows e attività programmate:
Include un'utile libreria di aiutanti, Webbackgrounder, che estrae i consigli nell'articolo per gestire l'arresto grazioso e alcune delle esigenze/esigenze tipiche di un compito di fondo.
Non configura IIS per te: dovrai modificare tu stesso le impostazioni di riciclaggio.