2015-04-27 10 views
5

Dopo aver spostato tutte le mie soluzioni su una macchina appena installata (che mi fa pensare che questo sia un problema di configurazione), ora sto avendo questo problema con il mio MVC 5 web applicazione (s).Application_Start() chiamato due volte in applicazione MVC 5 ospitata su IIS7.5

Quando si crea la mia applicazione Web (VS 2013), questo naturalmente rigenera tutto il codice Web e IIS riavvierà l'applicazione al caricamento della pagina successiva. Tuttavia ora sembra che quando vado alla mia pagina di avvio/login, l'Application_Start() si attiva come previsto, ma quando viene inviata la pagina, prima che venga raggiunto il metodo HttpPost, l'intera applicazione sembra ricominciare (Application_Start viene eseguito nuovamente). Questo secondo avvio sembra verificarsi prima che venga chiamato il primo Application_End() ... ma a prescindere dalla sequenza, non ho idea del perché questo sia ora un problema.

Controllo del motivo di arresto dell'applicazione in Application_End() Ottiene il famigerato ("apparentemente completamente non documentato)" BuildManagerChange "... che MSDN fornisce una descrizione ridicolmente vaga di.

Qualcuno ha idea del motivo per cui questo dovrebbe iniziare dopo aver caricato il mio ambiente di sviluppo su una nuova macchina. Entrambe le macchine sono Win7 Pro con IIS7.5, e credo che la configurazione di IIS sia identica a quella vecchia (anche se, apparentemente, non?). Il codice sorgente/web.config/etc non è cambiato tra le macchine.

L'unica documentazione che è possibile trovare su questo problema riguardava l'utilizzo di IISExpress, tuttavia sto utilizzando lo standard IIS7.5 installato con Win7 pro.

Modifica: dopo aver rimosso tutto il codice personalizzato dall'intero avvio del sito e ripristinato il mio LoginController al suo semplice modulo originale (nessun codice personalizzato), ciò si verifica ancora.

+2

Beh, sprecare 2 giorni in questo è stato divertente! Ma questo è stato risolto. L'esecuzione di procmon ha mostrato che hash.web era accessibile da mcshield.exe (McAfee AV). Apparentemente il live "on access scanner" controlla la cache di asp.net e in qualche modo IIS ne è consapevole e crede che sia necessario ricostruire nuovamente il sito. Per qualche motivo, McAfee non lo controlla dopo questa prima volta, quindi funziona normalmente dopo un secondo build/riavvio. Ho aggiunto un'esclusione dello scanner alla cartella c: \ Windows \ Microsoft.NET e sembra aver risolto il problema. – barbrady

+1

È necessario spostare il commento a una risposta e accettarlo. – ps2goat

+0

Fatto, grazie ... – barbrady

risposta

8

Beh, sprecare 2 giorni in questo è stato divertente! Ma questo è stato risolto. L'esecuzione di procmon ha mostrato che hash.web era accessibile da mcshield.exe (McAfee AV). Apparentemente il live "on access scanner" controlla la cache di asp.net e in qualche modo IIS ne è consapevole e crede che sia necessario ricostruire nuovamente il sito. Per qualche motivo, McAfee non lo controlla dopo questa prima volta, quindi funziona normalmente dopo un secondo build/riavvio. Ho aggiunto un'esclusione dello scanner alla cartella c: \ Windows \ Microsoft.NET e sembra aver risolto il problema. -

+0

Grazie per questo - mi ci sono voluti solo 1/2 al giorno per trovarlo, mi ha salvato un giorno e mezzo! Questo è esattamente il mio problema, non appena il sito è stato caricato da McAfee che lo sottoporrà a scansione, e per qualsiasi motivo, ciò ha causato il riavvio di Application_Start (senza dover aggiungere Application_End). –

+0

Grazie, ho installato anche mcafee – gavin

Problemi correlati