Używam aplikacji ASP.NET 2.0 w usługach IIS 6.0. Chcę, aby limit czasu sesji wynosił 60 minut, a nie domyślne 20 minut. Zrobiłem co następuje
- Ustaw
<sessionState timeout="60"></sessionState>
wweb.config
. - Ustaw limit czasu sesji na 60 minut w Menedżerze usług IIS / właściwościach witryny sieci Web / ustawieniach konfiguracji ASP.NET.
- Ustaw limit czasu bezczynności na 60 minut we właściwościach / wydajności puli aplikacji.
Nadal otrzymuję limit czasu sesji wynoszący 20 minut. Czy jest coś jeszcze, co muszę zrobić?
Odpowiedzi:
Czy używasz uwierzytelniania za pomocą formularzy?
Uwierzytelnianie za pomocą formularzy używa własnej wartości limitu czasu (domyślnie 30 minut). Po przekroczeniu limitu czasu uwierzytelniania za pomocą formularzy użytkownik zostanie przeniesiony na stronę logowania z aktywną sesją. Może to wyglądać na zachowanie Twojej aplikacji po przekroczeniu limitu czasu sesji, co ułatwia pomylenie jednej z drugą.
Ustawienie limitu czasu formularzy na wartość mniejszą niż limit czasu sesji może dać użytkownikowi okno, w którym może zalogować się ponownie bez utraty danych sesji.
źródło
Nie wiem o web.config ani IIS. Ale wierzę, że z kodu C # można to zrobić jak
źródło
Session.Timeout
różni się od używania pliku web.config lub IIS, więc zakładam, że dotyczy to całej aplikacji.Użyj następującego bloku kodu w pliku web.config. Tutaj domyślny limit czasu sesji wynosi 80 minut.
Użyj poniższego linku, aby ustawić limit czasu sesji z wyskakującym komunikatem alarmowym.
Przykład limitu czasu sesji
FYI: Powyższe przykłady są wykonane z kontrolką wyskakującą devexpress, więc musisz dostosować / zamienić kontrolę wyskakujących okienek devexpress na normalną kontrolę wyskakujących okienek. Jeśli używasz devexpress, nie musisz dostosowywać
źródło
Czy masz w pliku machine.config coś, co mogłoby zacząć obowiązywać? Ustawienie limitu czasu sesji w web.config powinno przesłonić wszelkie ustawienia w usługach IIS lub machine.config, jednak jeśli masz plik web.config gdzieś w podfolderze w aplikacji, to ustawienie zastąpi ustawienie w katalogu głównym aplikacji.
Ponadto, jeśli dobrze pamiętam, limit czasu w usługach IIS dotyczy tylko stron .asp, a nie .aspx. Czy na pewno kod sesji w web.config jest poprawny? Powinien wyglądać mniej więcej tak:
źródło
W mojej sytuacji była to pula aplikacji. Jest ustawiony na ponowne uruchomienie po bezczynności przez xx min. Kiedy ustawię go tak, aby nie uruchamiał się ponownie, wydaje się, że używa wartości z Web Config.
źródło
Zwykle to wszystko, co musisz zrobić ...
Czy jesteś pewien, że po 20 minutach przyczyną utraty sesji jest jednak bezczynność ...
Istnieje wiele powodów, dla których sesja może zostać wyczyszczona. Możesz włączyć rejestrowanie zdarzeń dla usług IIS, a następnie użyć przeglądarki zdarzeń, aby zobaczyć powody, dla których sesja została wyczyszczona ... może się okazać, że dzieje się tak z innych powodów?
Możesz również przeczytać dokumentację dotyczącą komunikatów o zdarzeniach i związanej z nimi tabeli zdarzeń .
źródło
Jeśli korzystasz z uwierzytelniania, polecam dodanie następującego pliku w pliku web.config.
W moim przypadku użytkownicy są przekierowywani na stronę logowania po przekroczeniu limitu czasu:
źródło
https://usefulaspandcsharp.wordpress.com/tag/session-timeout/
źródło
Ponieważ ASP.Net core 1.0 (vNext lub jakakolwiek inna nazwa jest używana), sesje są implementowane inaczej. Zmieniłem wartość limitu czasu sesji w
Startup.cs
,void ConfigureServices
używając:Jeśli chcesz użyć
appsettings.json
pliku, możesz zrobić coś takiego:źródło
To ustawienie można znaleźć tutaj w usługach IIS:
Można go znaleźć na poziomie serwera, witryny internetowej lub aplikacji w sekcji „ASP”.
Myślę, że możesz to ustawić na poziomie web.config tutaj. Potwierdź to dla siebie.
źródło
Wartość limitu czasu sesji usług IIS dotyczy tylko klasycznych aplikacji .asp i jest kontrolowana w konfiguracji usług IIS. W Twoim przypadku W przypadku aplikacji ASP.NET obowiązuje tylko wartość limitu czasu określona w pliku web.config.
źródło
Domyślny limit czasu sesji jest zdefiniowany w usługach IIS na 20 minut
Postępuj zgodnie z poniższymi procedurami dla każdej witryny hostowanej w sieci Web usług IIS 8.5
źródło
jeśli chcesz, aby limit czasu sesji dla witryny internetowej był usuwany
tag z pliku web.config.
źródło
Właściwość Timeout określa limit czasu przypisany do obiektu Session dla aplikacji w minutach. Jeśli użytkownik nie odświeży ani nie zażąda strony w określonym czasie, sesja kończy się.
źródło
Po zmianie wartości limitu czasu sesji w usługach IIS prosimy o ponowne uruchomienie usług IIS. Aby to osiągnąć, przejdź do wiersza polecenia. Wpisz IISRESET i naciśnij enter.
źródło