C# Web網站
有時候在web.config設置sessionState 或者類文件里設置Session.Timeout,在IIS里訪問時每次都是達不到時間就超時,原因是因為在IIS中設置了Session的超時時間,IIS里設置Session方法為:
1.IIS圖形界面設置
IIS6 在IIS里面右鍵點擊默認網站->主目錄->應用程序設置里點配置->選項->啟用會話狀態->會話超時那里設置時間
IIS7.5 點擊站點->功能視圖->ASP->會話屬性->超時
再web.config中設置Session過期時間方法:
<system.web> <!--最大請求長度,單位為kb--> <compilation debug="true" targetFramework="4.6" /> <httpRuntime targetFramework="4.6" maxRequestLength="409600" /> <httpModules> <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> </httpModules> <!--<sessionState mode="InProc" timeout="20" />--> </system.web>
timeout 設置經過多少分鍾后服務器自動放棄Session信息。默認為20分鍾;
當用戶登錄網站后較長一段時間沒有與服務器進行交互,將會導致服務器上的用戶會話數據(即session)被銷毀。此時,當用戶再次操作網頁時,如果服務器進行了session校驗,那么瀏覽器將會提醒用戶session超時。
下面說一下如何解決用戶登錄后較長時間未操作而導致的session失效的問題?
一般情況下下,我們首先想到的是,通過改變服務器的配置,延長服務器的session超時時間。
在Tomcat服務器和項目的的web.xml文件中有如下節點內容:
<session-config>
<session-timeout>30</session-timeout> </session-config>
這里的30表示session的超時時間,單位為分鍾,如果用戶登錄后在30分鍾內沒有與服務器交互,那么當前用戶的session將失效。
我們可以配置一個更大的數值(比如60),就可以延長session的超時時間,如果將該值改為0或負數的話,則表示session永不失效。
