簡體   English   中英

ASP.NET會話可以比Application更長壽

[英]Can ASP.NET session live longer than Application

這可能是一個愚蠢/蹩腳的問題,特別是在使用ASP.NET :)這么長時間之后,但我需要確定。

會話(即ASP.NET會話)是否可能比應用程序(應用程序實例/應用程序域/應用程序變量)更長?

換句話說,如果在Global.asax中調用Application_End,它是否表示不再有活動會話? 任何新請求都會導致Application_Start后跟一個新的Session_Start?

注意,會話可能不總是InProc,會話可能在狀態服務器或SQL服務器中。

使用默認的InProc會話狀態,應用程序將在最后一個會話到期時終止,此時將發生Application_End 在這種情況下,整個appDomain被拆除並釋放所有內存。 當會話持久存儲在內存中時,它們會在此時被永久銷毀,因此永遠不會超出應用程序的生命周期。

如果使用Sql ServerState Server將會話存儲在單獨的計算機上,那么當應用程序被拆除時,會話可以繼續存在。 然后,因為客戶端在瀏覽器中保留原始會話cookie,所以下次訪問該站點時會重新啟動會話,並且sessionid用於標識其現有會話。

是的,當您在SQL Server中放置狀態時,應用程序可能會重新啟動,但您仍將保持會話狀態

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM