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 odpowiedzi
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.
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.
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ę.
Podobne pytania
Nowe pytania
c#
C # (wymawiane „patrz ostro”) jest językiem programowania wysokiego poziomu, statycznie typowanym, wieloparadygmatowym opracowanym przez firmę Microsoft. Kod C # zwykle jest przeznaczony dla rodziny narzędzi Microsoft .NET i czasów wykonywania, do których należą między innymi .NET Framework, .NET Core i Xamarin. Użyj tego tagu w przypadku pytań dotyczących kodu napisanego w C # lub C # formalnej specyfikacji.