Quando distribuiamo la nostra applicazione Web, copiamo tutto il codice in una nuova directory e quindi puntiamo su questa nuova directory. Quando lo facciamo, il numero di appdomain aumenta ma non diminuisce mai. Inoltre, il nostro evento Application_End non sembra mai sparare.L'applicazione Web ASP.NET non scarica AppDomains dopo la distribuzione
Per un po 'di tempo sconosciuto, mentre entrambi i set di AppDomain sono ancora segnalati da perfmon, il sistema funziona in modo molto scadente mentre% di tempo in picchi di GC al 100%. Alla fine ricicla il pool di app per far funzionare di nuovo l'app senza problemi.
Ulteriore informazione: l'elenco delle applicazioni mostra 2 sulla mia macchina di sviluppo, ma 4 eseguite sul server live ... abbiamo solo un'applicazione in esecuzione nel pool quindi questo significa che una libreria che stiamo usando sta creando domini app.
Cosa devo fare per provare a eseguire il debug di cosa sta succedendo? Cosa impedirebbe lo scaricamento di un dominio dell'app?
Aggiornamento 9/3/2014
Dopo aver preso un po 'più in dettaglio le informazioni di registro sembra che il problema non è vecchi domini app che soggiornano in giro, è nuovo AppDomain creati durante il riavvio. Invece di avviare una nuova istanza, l'applicazione inizia due. A volte otteniamo application_end dalla vecchia istanza, a volte no.
Aggiornamento 9/4/2014
Entrambe le cose stanno accadendo. Utilizzando Process Explorer, posso vedere su una delle macchine che il vecchio dominio app è ancora lì e ne è stato avviato uno nuovo. Sull'altra macchina c'erano solo 2 domini di app, ma c'era una lacuna nei loro ID sequenziali. Quindi sono iniziate due istanze (riceviamo anche un messaggio di log dall'avvio dell'app), uno dei quali è morto quasi istantaneamente, lasciando 2 domini dell'app.
Sei, per caso, utilizzando il caching di ASP.NET con uno schema di sfratto che ricarica la cache quando scade? –
Utilizziamo la cache dell'applicazione ASP.NET. Inseriamo le cose con una scadenza continua in base al timeout della sessione degli utenti. Tuttavia non ricarica nulla da solo. –
Cosa intendi per "scadenza continua"? Vuoi dire che aggiorni la scadenza? Quello che stavo chiedendo è se ricaricare la cache o meno quando gli oggetti scadono in base a una richiamata dal gestore cache –