Pracuję nad opracowaniem aplikacji MVC5. Użyłem sesji do przechowywania danych użytkownika.
Poniżej znajduje się kod, którego używam do przechowywania danych sesji
if (Session["UserData"] == null)
{
Session["UserData"] = _objLoginSession;
}
Zwiększyłem również limit czasu sesji w pliku web.config, który jest jak poniżej
<sessionState mode="InProc" timeout="60">
</sessionState>
Mój tryb uwierzytelniania również jest żaden
<authentication mode="None" />
Ale kiedy uruchamiam moją aplikację, wygasa ona w ciągu 1–2 minut.
Czy ktokolwiek może mi w tym pomóc?
Odpowiedzi:
2 dla odpowiedzi № 1Jednym z powodów, dla których sesja ASP.NET może wygasać przychodzi mi na myśl: dane sesji są przechowywane w pamięci, ponieważ określiłeś tryb InProc, więc jeśli ponownie skompilujesz aplikację w Visual Studio lub z jakiegoś powodu aplikacja zostanie zrestartowana, stracisz dane sesji. Istnieje wiele powodów, dla których aplikacja może zostać zrestartowana przez serwer WWW. Rzeczy takie jak zmiana pliku web.config lub niektórych plików w bin
folder lub komputer zaczyna działać z małą ilością pamięci.
Wszystkie te powody wskazują, że absolutnie nigdy (z wyjątkiem programowania) nie należy przechowywać danych sesji w pamięci (InProc).