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?
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.
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.
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".
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.
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.
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.
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
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
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.
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:
- Zatrzymaj debugger.
- zaktualizuj kod
RegisterRoutes
(przykład-add\removeint i = 1;
). - odbudować.
- umieść punkt przerwania w
RegisterRoutes
.
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ć
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
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