2014-12-04 11 views
5

Mam starą aplikację MVC, która została zbudowana przy użyciu Visual Studio 2010. Następnie zaktualizowałem do MVC 5 przy użyciu Visual Studio 2013 i zaktualizowałem pakiety NuGet. Buduje, ale kiedy uruchamiam aplikację za pomocą Visual Studio, nie może znaleźć widoku głównego. Prześledziłem go z powrotem do Global.asax i odkryłem, że Application_Start nigdy nie jest wywoływany, a trasy nigdy nie są ustawione.MVC 5 Application_Start Nie działa

Znalazłem kilka pytań tutaj zadanych o tym problemie, ale żadne z rozwiązań nie sprawdziło się u mnie.

Application_start not working

Application_Start not firing?

To wydaje się takie proste, ale nie mogę znaleźć rozwiązanie dla tego produktu. Jakieś pomysły?

+0

Jest o wiele więcej do aktualizacji niż tylko aktualizacja pakietów. Istnieje wiele zmian w plikach konfiguracyjnych, które musisz wprowadzić. Czy zrobiłeś to? –

+0

Jestem nowy w ASP.MVC, ale spotkałem się z artykułem [jak przeprowadzić migrację z MVC4 do 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) i spodziewałem się, że migracja z MVC2 będzie gorsza – pf1957

Odpowiedz

5

Spotykałem ten problem kilka razy i próbowałem wielu obejść. co pracował dla mnie jest,

  1. Rozpocznij debugowanie aplikacji (F5)
  2. otworzyć plik global.asax (jego global.asax nie Global.asax.cs)
  3. coś zmienić w tym pliku (umieścić jakiś biały znak lub coś takiego i zapisać)
  4. odśwież stronę w przeglądarce.
  5. zobaczysz, że application_start osiągnie pułapki.

Rozwiązanie 2

  1. Wyczyść temp katalog
  2. Restart IIS (przejdź do wiersza polecenia i powiedzieć iisreset)
  3. Uruchom debugowanie aplikacji
  4. Następnie dołączyć swoją aplikację z proces.
+4

Po obejrzeniu mojej Globalasax znalazłem problem. Moje Visual Studio powiedział, że mam Global.asax i Global.asax.cs. Kiedy faktycznie patrzę na mój kod w Eksploratorze Windows, okazało się, że nie mam pliku Global.asax i mam tylko plik Global.asax.cs. Nie sądziłem, że to możliwe, ale usunąłem istniejący plik i utworzyłem nowy plik Global.asax i wszystko zaczęło działać. – Filjan

4

To samo zdarzyło mi się, Global.asax.cs nie jest nazywany w ogóle ...

chodzi o moim przypadku, atrybut Inherits brakowało w Global.asax

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

So po tym jak to zmieniłem, to działa!

<%@ Application Codebehind="Global.asax.cs" Inherits="MyAwesomeApp.MvcApplication" Language="C#" %> 
2
  • miejsce przerwania ciągu Application_Start
  • Otwórz swoją Web.Config
  • debugowania aplikacji (F5)
  • niczego zmieniać w swoim web.config (dodając pustą linię wystarczy)
  • Odśwież stronę internetową
  • Aplikacja_Start zostanie uruchomiona

Resetowanie samego IIS nie zadziała, ponieważ debugger jest dołączony po uruchomieniu Application_Start.