Quando si verifica questo comportamento, quanto tempo è stata eseguita una distribuzione dei file sul server?
C'è un'opzione di configurazione denominata brutta numRecompilesBeforeAppRestart sul cartellino compilazione:
<system.web>
<compilation debug="true" numRecompilesBeforeAppRestart="15">
http://msdn.microsoft.com/en-us/library/system.web.configuration.compilationsection.numrecompilesbeforeapprestart.aspx
default questo valore a 15. Sono stato attraverso un'applicazione uccidendo tutte le sessioni utente prima e questo è stato il colpevole per me. Per circa un giorno dopo l'aggiornamento di un'applicazione Web leggermente utilizzata (nuovi file copiati sul server, questo ha finito per sovrascrivere TUTTI i file, numerandoli in centinaia), avremmo ottenuto riavvii AppDomain costanti evidenziati da tutti i valori di sessione per tutti gli utenti che scomparivano.
ho trovato questo bug report che elenca il comportamento che sto vivendo: http://support.microsoft.com/kb/319947
Ecco la veramente importante testo pertinente alla mia situazione:
Tuttavia, questo problema si verifica quando si carico molti nuovi file .aspx o .ascx su server (ad esempio, 61 file). Il server scarica l'applicazione quando le prime 15 file vengono ricompilati e ogni volta altri 15 file sono ricompilato fino a quando il server raggiunge 61. Ciò si traduce in quattro applicazione riavvia anche se solo uno è richiesto.
Ho impostato il valore su 99999 e il problema è andato via. Ciò significa che più memoria si accumulerà nel mio processo di lavoro, quindi ho aggiunto un riciclo giornaliero (3:00 quando il mio sito non ha utenti) alle impostazioni di riciclo di IIS AppPool.
fonte
2010-03-09 22:57:06
Ho trovato ulteriori informazioni. Ho scritto uno script per registrare l'ID del processo di lavoro IIS ogni ora.Il problema della sessione è successo di nuovo stamattina, ma quando ho controllato il log, ha mostrato che l'ID del processo è rimasto lo stesso. Quindi, non sembra che questo stia accadendo a causa di un riavvio del processo di lavoro. –
Ho caricato Process Monitor sul server e ho utilizzato le istruzioni da http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx per scrivere una voce del registro eventi ogni volta che l'applicazione termina. E 'successo di nuovo oggi, e il messaggio registrato era "Notifica di cambio di rename di directory per" C: \ inetpub \ wwwroot \ ". Cambia dir di JobTraQ o rinominazione di directory." Process Monitor mostrava molti eventi "NotifyChangeDirectory", ma non so da dove venissero. –