2014-12-04 13 views
5

Ho una vecchia applicazione MVC che è stata creata utilizzando Visual Studio 2010. Ho quindi eseguito l'aggiornamento a MVC 5 utilizzando Visual Studio 2013 e aggiornato i pacchetti NuGet. Costruisce, ma quando eseguo l'applicazione tramite Visual Studio non riesce a trovare la vista home. L'ho rintracciato sul Global.asax e ho scoperto che Application_Start non viene mai chiamato e le rotte non vengono mai impostate.MVC 5 Application_Start non in esecuzione

Ho trovato alcune domande qui su questo problema, ma nessuna delle soluzioni ha funzionato per me.

Application_start not working

Application_Start not firing?

Questo sembra così semplice, ma non riesco a trovare una soluzione a questo. Qualche idea?

+0

C'è molto altro da aggiornare rispetto all'aggiornamento dei pacchetti .. ci sono un sacco di modifiche al file di configurazione che devi fare .. hai fatto quelle? –

+0

Sono nuovo in ASP.MVC, ma ho incontrato l'articolo [come migrare da MVC4 a MVC5] (http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet -mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2) e mi aspettavo che la migrazione da MVC2 sarebbe peggiore – pf1957

risposta

5

Ho affrontato questo problema alcune volte e ho provato molti soluzioni alternative. cosa ha funzionato per me è,

  1. Avviare il debug dell'applicazione (F5)
  2. aprire il file Global.asax (la sua global.asax non Global.asax.cs)
  3. cambiamento qualcosa in quel file (inserisci uno spazio bianco o qualcosa di simile e salvalo)
  4. ora aggiorna la tua pagina nel tuo browser.
  5. vedrai il tuo application_start colpirà i breakpoint.

Soluzione 2

  1. Cancella Temp directory
  2. Riavviare IIS (vai al prompt dei comandi e dire iisreset)
  3. avviare il debug dell'applicazione
  4. quindi collegare l'applicazione con la processi.
+4

Bene, dopo aver visto il mio Globalasax ho trovato il problema. Il mio Visual Studio ha detto che avevo un Global.asax e un Global.asax.cs. Quando guardo il mio codice con Windows Explorer, ho scoperto che non avevo un file Global.asax e avevo solo un file Global.asax.cs. Non pensavo che fosse possibile, ma ho eliminato il file esistente e creato un nuovo file Global.asax e tutto ha iniziato a funzionare. – Filjan

4

Lo stesso è accaduto a me, Global.asax.cs non viene chiamato a tutti ...

quanto riguarda il mio caso, l'attributo Inherits mancava in Global.asax

<%@ Application Codebehind="Global.asax.cs" Language="C#" %> 

Così dopo averlo cambiato così, funziona!

<%@ Application Codebehind="Global.asax.cs" Inherits="MyAwesomeApp.MvcApplication" Language="C#" %> 
2
  • Luogo punto di interruzione all'interno Application_Start
  • Aprire il web.config
  • eseguire il debug dell'applicazione (F5)
  • cambiare qualcosa nel tuo web.config (aggiungendo riga vuota è sufficiente)
  • Aggiorna la tua pagina web
  • Application_Start verrà attivato

Ripristinare da solo IIS non farà il trucco poiché il debugger è collegato dopo l'avvio di Application_Start.

Problemi correlati