Dlaczego nie uruchamia się Zdarzenie application Start() podczas debugowania mojego ASP.NET aplikacja MVC?

Obecnie mam następujące procedury w moim pliku Global.asax.cs:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        "Default",                                          
        "{controller}/{action}/{id}",                       
        new { controller = "Arrangement", action = "Index", id = "" }
    );
}

protected void Application_Start()
{
    RegisterRoutes(RouteTable.Routes);
    // Debugs the routes with Phil Haacks routing debugger (link below)
    RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
}

Routing debugger ...

Kiedy nacisnę F5, aplikacja odpala się i jeśli nie mam widoku o nazwie Index.aspx w folderze ~/Views/Home/, dostaję komunikat o błędzie "Brak widoku", chociaż ponownie zdefiniowałem domyślną trasę i usunąłem HomeController. Spodziewałbym się dostać debuggera routingu, a jeśli nie to przynajmniej żądanie ~/Views/Arrangement/Index.aspx.
Punkt przerwania na RegisterRoutes(Routetable.Routes); nigdy nie zostanie osiągnięty podczas debugowania.

I próbowałem budować, przebudowywać, restartować VS, czyścić, odbudowywać ponownie itp., ale nic nie wydaje się działać. Dlaczego aplikacja nie uruchamia bieżącej wersji kodu?

Author: Tomas Lycken, 2009-06-09

12 answers

Znalazłem następującą odpowiedź na forums.asp.net :

Czy używasz IIS7 jako serwera lub wbudowanego serwera www? Zauważyłem podczas korzystania z IIS7, że jeśli uruchomisz debugger, niech pojawi się strona, a następnie zmień Globalny.asax (plik znaczników, a nie kod-behind) podczas gdy debugger jest nadal uruchomiony, a następnie odśwież stronę, punkty przerwania w Application_Start zostaną uderzone.

Myślę, że to, co się dzieje, to naciśnięcie "play", VS po prostu uruchamia proces, a następnie dołącza do niego, ale do czasu, gdy się do niego przywiązuje, Zdarzenie startowe już się uruchomiło. Zmieniając Globalne.asax, spowodujesz ponowne uruchomienie aplikacji, a ponieważ debugger jest już dołączony, możesz uderzyć w punkt przerwania. Niezbyt dobre rozwiązanie, ale wydaje się działać.

Tak było w moim przypadku.

 99
Author: Vishal Seth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-04 21:46:02

Dodaj System.Diagnostics.Debugger.Break(); do Application_Start().
to wymusi punkt przerwania.

Ta linia powinna być skomentowana, aby uniknąć punktu przerwania dla happern i #ifdef debug, aby upewnić się, że nigdy nie trafi do produkcji.

 22
Author: JotaBe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-15 10:41:54

Uważam, że należy zamknąć / zatrzymać lokalny serwer debugowania, aby zdarzenie Application_Start() mogło się ponownie uruchomić... powinieneś być w stanie kliknąć prawym przyciskiem myszy na nim w zasobniku systemowym i wybrać "Stop".

 18
Author: John Rasch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-09 02:51:03

Problem polega na tym, że Application_Start() najpierw uruchamia się, a następnie dołącza się debugger.

Więc celem jest zrobić coś, co spowoduje, że Application_Start() ponownie uruchomi się, gdy nadal będzie działać. Dla celów debugowania, po prostu uruchom debugger jak zwykle zrobić, a następnie Edytuj (np dodać nową linię) I zapisać sieć.plik konfiguracyjny.

 8
Author: Paul Totzke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-10 21:03:44

Znalazłem problem:

Ta aplikacja MVC była częścią większego rozwiązania, w którym miałem w pewnym momencie ustawić inny projekt do zbudowania dla środowiska x86 (uruchamiam x64). Kiedy to zrobiłem, najwyraźniej wszystkie inne projekty-nawet te dodane później - były ustawione, aby nie budować na Ctrl+Shift+B, i przypuszczam, że dlatego debugger nie uderzył w mój punkt przerwania.

Rozwiązanie:

Przejdź do właściwości Budowania rozwiązania (kliknij prawym przyciskiem myszy rozwiązanie, wybierz Właściwości i wybierz Build on the menu po lewej stronie) i umieść czek w polu budowania obok nazwy projektu na liście.

 6
Author: Tomas Lycken,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-09 22:56:44

W moim przypadku używałem

Local IIS Web server in web project settings

A ja zmieniam na używam Visual Studio Development Server i to działa.

 4
Author: Hernaldo Gonzalez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-21 15:56:58

Poniżej technika zadziałała dla mnie:
Prostym obejściem jest dotknięcie global.asax po podłączeniu debuggera w celu wymuszenia recyklingu aplikacji. Następnie podczas następnego żądania zostanie osiągnięty punkt przerwania ustawiony na Application_Start.

Znalazłem to here:
http://connect.microsoft.com/VisualStudio/feedback/details/634919/cannot-debug-application-start-event-in-global-asax

 4
Author: Rupesh Kumar Tiwari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-30 17:45:56

W moim przypadku problem był między krzesłem a klawiaturą - po zmianie nazwy MVC project assembly zapomniałem zaktualizować Global.asax, aby wskazać poprawną klasę. Więc sprawdź "Inherits" w globalnym.asax (w visual studio kliknij prawym przyciskiem myszy na Global.asax - > View Markup)

<%@ Application Codebehind="Global.asax.cs" 
  Inherits="Monster.MgsMvc.Web.MvcApplication" 
  Language="C#" %>

Jeśli naprawdę pasuje do Twojego globalnego.asax.CS class / namespace declaration

 3
Author: Ondrej Svejdar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-06 17:20:20

Uderzyłem dzisiaj z tym samym problemem i używałem lokalnych IIS.

Wydaje mi się, że wynika to ze sposobu wczytywania strony. Wszystko, co musisz zrobić, to umieścić punkt przerwania w Application_Start. Uruchom aplikację (w moim przypadku zajęło to ekran logowania ), a następnie przejdź do web.config. Edytuj go-dodając spacje. a następnie Odśwież w przeglądarce.to uderzy w punkt przerwania na Application_Start.

 3
Author: Dev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-22 11:07:35

Może moje rozwiązanie komuś pomoże:

  1. Zatrzymaj debugger.
  2. zaktualizuj kod RegisterRoutes (przykład-add\remove int i = 1;).
  3. odbudować.
  4. umieść punkt przerwania w RegisterRoutes.
 0
Author: Avishay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-28 21:39:52

Właśnie miałem ten problem i zamieniłem z lokalnego IIS na IIS Express W project properties - > web aby to uporządkować

 0
Author: Clarkeye,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-22 16:38:34

Project -> property - > web

Zaznacz "kod natywny".

Tutaj wpisz opis obrazka

 0
Author: s.c,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-26 02:30:45