Ostatnio grupa użytkowników powiedziała nam, że nie może debugować pliku global.asax.
Zatwierdzono: Fortect
Usuń global.asax
, a następnie dodaj nowy. Moje rozwiązanie pozyskało global.asax
i global.asax.cs
.
Czy możesz debugować globalnie ASAX?
Tak, ten rodzaj jest zgodny. Application_Start () jest obsługiwany przez IIS. Ale wszystkie inne metody, na przykład Session_Start, więc wszystkie inne, z wyjątkiem Application_Start(), mogą okazać się debugowane w zwykły sposób.
Wprowadzono wszystkie rodzaje metod związanych z Application_Start
, ( session_start
, …) pliki, ale w globalnym oferowane były tylko własne firmy. asax
mogą być brane pod uwagę. Tak więc punkty przerwania i sposób w klejnotach nic nie robią.
Dopiero po przebudowaniu aplikacji global the.asax.cs
miał jakieś poprawne metody lub działało ogółem.
Wygląda na to, że równie dobrze możesz kryć się za zasobami kodu dla global.asax.
Przede wszystkim musimy naprawić wspólny kod. Kod programu możemy wygenerować po zdarzeniach Application_Start lub Session_Start. Aplikacja prawdopodobnie zepsuje się, gdy kod zostanie wykonany:
Jeśli aplikacja prawdopodobnie nie jest uszkodzona, oznacza to, że nie zostało wywołane żadne zdarzenie globalne. Popraw poprawność taniej dyrektywy @Application, na przykład:
Zatwierdzono: Fortect
Fortect to najpopularniejsze i najskuteczniejsze narzędzie do naprawy komputerów na świecie. Miliony ludzi ufają, że ich systemy działają szybko, płynnie i bez błędów. Dzięki prostemu interfejsowi użytkownika i potężnemu silnikowi skanowania, Fortect szybko znajduje i naprawia szeroki zakres problemów z systemem Windows - od niestabilności systemu i problemów z bezpieczeństwem po zarządzanie pamięcią i wąskie gardła wydajności.
bezużyteczny Application_Start (obiekt nadawcy, EventArgs e)
// Kod jest wykonywany celowo
void Application_End (nadawca obiektu, EventArgs e)
// Kod, który uruchamia się, gdy widzisz, że aplikacja się kończy
void Application_Error (obiekt e-mail, EventArgs e)
{
// Kod do uruchomienia, gdy wystąpi nieobsługiwany problem
void Session_Start (nadawca obiektu, EventArgs e)
{
// Kod do uruchomienia po rozpoczęciu sesji
Jak uruchomić Globalny ASAX?
Utwórz nowy produkt sieci Web w programie Visual Studio (lub otwórz dowolny istniejący projekt witryny internetowej).Otwórz plik Global. asax. cs z katalogu głównego folderu przyczyny Twojej aplikacji.Ustaw punkt przerwania we własnej metodzie Application_Start.Uruchom aplikację na telefonie, a także naciskając klawisz F5.
void Session_End (nadawca obiektu, EventArgs e)
{
// Kod uruchamiany na końcu sesji. //
Notatka. Spotkanie Session_End nie jest wysyłane, dopóki drugi tryb nie aktywuje naprawdę stanu sesji m //
jest skonfigurowany tak, aby ułatwić Ci pracę z InProc w pliku Web.config. Gdy tryb planu jest ustawiony na StateServer
// ale / lub zdarzenie SQLServer nie jest wyzwalane.
Każdy programista .NET powinien wiedzieć, jak klasyfikować punkty przerwania TV w Visual Studio 2012.
- Kliknij prawym przyciskiem myszy wiersz kodu i wybierz opcję Punkt przerwania. -> “Wstaw punkt przerwania”.
- Lub po prostu naciśnij F9 wraz z umieszczeniem głównego kursora w wierszu kodu. Co
Co się stanie, jeśli ten wiersz najczęściej kojarzony z kodem dotyczy kodu Global.asax? Ale czy prawdopodobnie punkt przerwania trafi po uruchomieniu aplikacji? Jeśli nie, co możesz zrobić, aby technologia informacyjna działała?
- Utwórz nowy plan sieci Web w programie Visual Studio (lub otwórz projekt witryny internetowej na żywo).
- Otwórz plik Global.asax.cs z folderu głównego aplikacji.
- Ustaw określony punkt przerwania we wszystkich metodach Application_Start.
- Uruchom aplikację w przeglądarce, naciskając klawisz F5.
Punkt przerwania jest całkowicie ignorowany, ponieważ jego kod był właśnie wykonywany w usługach IIS, do których był dołączony ten debuger. Na szczęście istnieje w większości prosty sposób na rozwiązanie tego problemu.
- Otwórz znacznik asax Global.File w autorze kodu. (Zapoznaj się z sekcją pomocy poniżej, jeśli generalnie nie masz pewności, jak to zrobić.)
- Dokonaj tej zmiany bez konsekwencji (na przykład dodaj obszar do tagu zamykającego>).
- Zaktualizuj swoją niesamowitą aplikację nawigacyjną.
Powinieneś teraz zauważyć, że większość punktu przerwania jest zwykle wyzwalana po uruchomieniu świetnej aplikacji!
Jeśli nie masz pewności co do praktycznych pomysłów na otwarcie tego pliku znaczników Global.asax, postępuj zgodnie z tymi instrukcjami.
- Kliknij prawym przyciskiem myszy plik Global.asax w Eksploratorze rozwiązań.
- Wybierz opcję Pokaż ze znaczników z menu kontekstowego.
Mam mały fragment kodu w metodzie Application_Start ()
, ale jeśli umieszczę punkt przerwania w procedurze, zostanie on zignorowany!
- Zamknij serwer deweloperski na pasku zadań.
- Zmień konfigurację wersji, aby ułatwić debugowanie.
Prostym sposobem na złamanie kodu Application_Start ()
jest użycie klasy System.Diagnostics.Debugger
. Możesz wymusić uruchomienie aplikacji, ustawiając System.Diagnostics.Debugger.Where break ()
, co oznacza, że ten debuger został zawieszony.
Jak zainstalować globalny ASAX?
Jak dawać globalnie. asax: Wybierz Witryna internetowa >> Dodaj nowy element (lub Projekt >> Dodaj nowy element, jeśli używasz szablonu projektu domeny programu Visual Studio) i wybierz szablon klasy aplikacji globalnej. Po dodaniu głównego globalnego.
void Application_Start (obiekt nadawcy EventArgs, e) System.Diagnostics.Debugger.Break ();
- Dołącz debuger do czyjegoś procesu IIS.
- Otwórz asax global.File oprócz wstawienia jednego konkretnego punktu przerwania.
- Dodaj miejsce do web.config i zarejestruj dom (spowoduje to zresetowanie bieżącej aplikacji internetowej);
- Odśwież / przejdź do strony internetowej domeny.
- patrzy ze zdumieniem, ponieważ zwykle debuger zatrzymuje się w punkcie przerwania. 🙂
Application_Start ()
jest wywoływana, jeśli chodzi o każdą domenę aplikacji. Jeśli nie znasz punktu przerwania, oznacza to, że strona internetowa aplikacji została już utworzona. Więc zrób to:
- Dostępna jest ikona serwera WWW VS za pośrednictwem funkcji Szybkie uruchamianie (konkretna ikona wskazuje, który zwykle jest „Lokalny host, jakiś port”). Kliknij prawym przyciskiem myszy iw rezultacie wybierz Zatrzymaj lub Zamknij. Powinno to zakończyć każdą domenę AppDomain.
- Jeśli używasz IIS, prawie na pewno będziesz musiał ręcznie zrestartować witrynę.
- Alternatywnie, zwykle wystarczy zmienić konfigurację superautostrady lub Global.asax, aby zrestartować domenę aplikacji.
- Zrestartuj debugowanie, punkty przerwania powinny być teraz w porządku.
Upewnij się, że aplikacja osoby jest w trybie debugowania (
w web.config).
Jeśli większość osób korzysta z programu VS Developer’s Started iis, należy natychmiast ponownie uruchomić to zadanie lub odbudować aplikację.
- Ponieważ bez wątpienia witryna jest skonfigurowana do pracy z katalogiem wykrywania (gdzie prawdopodobnie zostanie wdrożony projekt sieciowy VS), wystarczy ponownie uruchomić grupę puli aplikacji dla tej witryny i rozpocząć debugowanie, gdy pierwsze żądanie dotrze do serwera ( ktoś może zwykle ponownie uruchomić pulę aplikacji i debugować).
- Aby witryna działała w nowym, innym folderze, a nawet w zdalnym węźle, musisz do niej dołączyć, jeśli poprosisz o udział w procesie. W tym celu oprócz wklejenia
Debug - Dołącz do procesu
należy wpisać nazwę technologii, a następnie wybrać proces, który pomoże w debugowaniu. Bez wyjątku jest to w3wp a. Działający exe w trybie zarządzanym.
Ale po drugie, większość metod, na przykład Session_Start
i wiele innych, z wyjątkiem Application_Start ()
, każdy może normalnie debugować.
void Application_Start (nadawca obiektu, EventArgs e) System.Diagnoza.Debugger. Zaczynać();
, który normalnie nie powinien uciekać z kodu i powinien uruchamiać debuger, zakładając, że usługa została uruchomiona z wieloma uprawnieniami.
Usuń global.asax
i dodaj, że po prostu nowy. Moim rozwiązaniem, niezbyt długo z powrotem, były global.asax
i global.asax.cs
.
Wszystkie typy procedur ( Session_Start
, application_start
, …) zostały uwzględnione w tych katalogach, ale oferowane są tylko z globalnym . asax
są brane pod uwagę. Tak więc punkty eksploatacji i kod w cs nie piszą nic innego.
Dopiero po odtworzeniu pliku na całym świecie, pliku.asax.cs
, zaadaptowałem i przeprowadziłem metody.
Może dla ciebie debugować globalny ASAX?
Tak, to proste. Application_Start () jest obsługiwany przez IIS. Ale inne metody, jeśli chodzi o przykład Session_Start, i poza wszystkimi innymi, z wyjątkiem Application_Start(), mogą być czasami dobrze debugowane.
Nie należy polegać na aplikacji Application_Start (), aby zamienić połączenie w minutę natychmiastowego naciśnięcia klawisza f5.Wywołany Application_Start () należy zadeklarować, gdy tylko pierwsza twarz aplikacji.Dziwne ale prawdziwe.
Jak uruchomić Global ASAX?
Utwórz nowy projekt internetowy za pomocą Visual Studio (lub otwórz istniejący projekt w cyberprzestrzeni).Otwórz plik Global. asax. cs ze względu na folder główny aplikacji.Ustaw punkt przerwania jako część nowej metody Application_Start.Uruchom aplikację w bieżącym użytkowniku, naciskając klawisz F5.
Jak debugować aplikację_ Start?< /h2>Dołącz każdy debuger, który może obsługiwać IIS.Otwórz globalny. Daj jeden konkretny sygnał asax i zajmij miejsce na odpoczynek.Dodaj pokój, który pomoże ogromnej przestrzeni.Odśwież / przejdź do strony internetowej firmy w serwisie.Boom Debugger złamie twój punkt przerwania.