Jak mogę wymusić wywoływanie metody Session_Start na moim global.asax za każdym razem, gdy moja aplikacja działa w trybie deweloperskim?

Mam trochę kodu, który muszę debugować, ale czasami jest wywoływany, czasami nie. Próbowałem już zamknąć "Serwer programistyczny ASP.NET", ale bez powodzenia.

3
Diego 21 luty 2012, 19:34

3 odpowiedzi

Najlepsza odpowiedź

Udaje mi się to zrobić, ponownie uruchamiając „Usługę stanową ASP.NET”, która jest usługą służącą do zarządzania stanem sesji na komputerze.

Nie idealne rozwiązanie, ale rozwiązuje mój problem.

2
PreguntonCojoneroCabrón 5 listopad 2016, 17:33

Przeczytaj ten artykuł http://sandblogaspnet.blogspot.com/2008/03 /methods-in-globalasax.html

Zdarzenie rozpoczęcia sesji jest uruchamiane tylko wtedy, gdy rozpoczyna się nowa sesja użytkownika. Po uruchomieniu „Session_Start” dla użytkownika, jeśli użytkownik wyśle ​​kolejne żądanie do dowolnego zasobu w aplikacji, to zdarzenie w ogóle nie zostanie wywołane. Zdarzenie jest wyzwalane tylko wtedy, gdy sesja użytkownika wygaśnie, a następnie użytkownik ponownie spróbuje uzyskać dostęp do dowolnego zasobu w aplikacji.

Czy na pewno nie szukasz Application_Start? Jeśli nie, to tak długo, jak zresetujesz sesję, to zdarzenie powinno zostać wywołane.

EDYTUJ: Przeczytaj także ten artykuł na temat kogoś, kto próbował zrobić to samo, co Ty http://forums.asp.net/t/1608241.aspx/1

Z tej strony:

Masz rację, właśnie to przetestowałem, umieszczając <sessionState timeout="1"/> w moim pliku Web.config. Następnie odczekałem 1 minutę i kliknąłem link na stronie. To natychmiast wrócił do Session_Start i ponownie uwierzytelnił użytkownika.

EDYCJA 2: Spróbuj wywołać Session.Abandon() ze swojej strony startowej. Powinien usunąć sesję i wymagać od użytkownika rozpoczęcia nowej.

4
Gage 21 luty 2012, 20:19

Może to być uciążliwe, ale połączenie ponownego uruchomienia serwera deweloperskiego ASP.net oraz zamknięcia i ponownego otwarcia przeglądarki powinno zresetować sesję.

0
Anthony Shaw 21 luty 2012, 20:42