簡體   English   中英

Asp.Net會話立即過期

[英]Asp.Net Session expires immediately

即使我在web.config文件中進行了設置,我的Asp.net會話也會立即過期,

<system.web>
        <sessionState timeout="2880" mode="InProc" cookieless="UseCookies"></sessionState>
        <customErrors mode="RemoteOnly"/>
        <trace enabled="false" localOnly="false"/>
        <compilation debug="false" strict="false" explicit="true" targetFramework="4.0"/>
        <httpCookies httpOnlyCookies="true"/>
        <pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never" enableViewStateMac="false" />
    </system.web>

我在web.config中做了上面的設置,即使它在大約3分鍾后過期了...有人可以幫我嗎?

如果您的應用程序已啟用AJAX,請刪除cookieless屬性。 使用cookieless屬性的默認值。

從MSDN文檔:

無cookie屬性可以是以下可能的值之一。 默認值為UseCookies值。

注意:在配置啟用AJAX的ASP.NET網站時,僅將UseCookies的默認值用於無cookie屬性。 ASP.NET AJAX客戶端腳本庫不支持使用URL中編碼的cookie的設置。

我認為會話不會立即過期,而只會死掉。 由於您使用的是InProc會話狀態,因此在

  • 對web.config文件的任何更改也會導致AppDomain卸載和會話
  • 應用程序池重新啟動。 InProc會話非常危險,我建議至少為每個網站分配單獨的Applciation Pool
  • 文件后面代碼中的任何代碼更改都會導致AppDomain卸載(以及會話),以便在新的AppDomain中加載新程序集

最好的解決方案-使用SqlServer Mode會話狀態。

暫無
暫無

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

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