台灣最大程式設計社群網站
線上人數
736
 
會員總數:245217
討論主題:189089
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 關於Session timeout問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於Session timeout問題
價值 : 20 QP  點閱數:284 回應數:7

樓主

小裕
初學者
137 196
3014 369
發送站內信

頁面在登入後,我設定了如下這一段,譬如讓它每隔5秒refresh一次,
但session還是會遺失,我IIS跟web config都有設定,
還有那個地方會影響呢?

我是登入頁有帶帳號session,所以登入後,加了下面那一段,
我有很多程式都有判斷帳號去執行不同功能,這部分一直困惱著.



搜尋相關Tags的文章: [ Session timeout ] ,
本篇文章發表於2019-07-30 08:21
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
重點在於您的『Refresh.aspx』這個頁面原始碼是什麼?路徑如何?
他是否有多久時間會重新整理?

能否貼出來
^.^a
本篇文章回覆於2019-07-30 09:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
另外,您的這句語法,寫在哪裡?
如果不是每一頁都有,那麼這語法在跳到沒有的頁面,就失效了

此外,Session預設為20分鐘,因此您『每5秒』重新整理一次,時間感覺過短
建議可以放大到15分鐘再重新整理一次即可
因為中間切換頁面,都還可以延長

當然,最最重點是您的『Refresh.aspx』是否能夠正常運作

^.^a
本篇文章回覆於2019-07-30 09:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小裕
檢舉此回應

目前我只在登入後的頁面放而已
<div style="display:none">
<iframe id="refresh" src="Refresh.aspx" width="0" height="0"></iframe>
</div>
所以要每個程式功能都要加上這一段??
還是這一頁的iframe頁面加即可?
如user_setting.aspx Home_tab.aspx....

====================================================
Default.aspx




=================================
Refresh.aspx
=======================================================================================================

本篇文章回覆於2019-07-31 21:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
了解原理,原則,您就會有正確的方向去思考怎麼做

1.Session TimeOut的發生,是Client端對Server端,超過20分鐘(預設)沒有任何的Request
2.Refresh.aspx的用意,是每過一段時間(例如15分鐘,就自動向Server端Request一次)
3.用iframe是在頁面中,『坎入』另一個頁面,而該頁面有獨立運作的能力(重整時不會影響母頁面的狀況)

目前我只在登入後的頁面放而已

4.那麼當使用者沒有在登入後的頁面(停留在其他頁面),這個重新整理就不存在,就不會重新整理,就會超過20分鐘Session Timeout

----
通常,我的系統會用到MasterPage,所有的頁面,都套用MasterPage(每個頁面會有共同的天地)
所以我就把iframe放到MasterPage

或者進入系統,我直接用frameset畫面切frame的方式,將refresh.aspx隱藏在某個一直存在但看不到的frame中
或者將iframe做成WebUserControl,然後每個頁面頁末的地方,拉入這個WebUserControl
或者利用PageBase,在每頁中安排個位置,然後由PageBase填上iframe
或者...

方式有很多,總之在你的系統中,要有個地方(iframe, frameset)讓Refresh.aspx可以一直在,而且一直重新整理
這樣的方向去思考

^_^





本篇文章回覆於2019-08-01 10:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

小裕
檢舉此回應
我會打算採做成web user control方式,
然後讓它一段時間整理一次,

我現在這樣測試他是有在Refresh,應該session不會掉,
但昨日我測試放著,隔天再來看,一樣會timeout,
是哪裡還有問題嗎?

是因為這個easyui的版面方式我不能這樣擺?

我後來是把它放在<body>後面,是有一段時間在refresh,
但隔日檢查就還是這樣.

<div style="display:none">
<iframe id="refresh" src="Refresh.aspx" width="0" height="0"></iframe>
</div>


===========

本篇文章回覆於2019-08-05 16:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
但昨日我測試放著,隔天再來看,一樣會timeout,
是哪裡還有問題嗎?


這要牽涉到您的Server有沒有重新開機、重新回收、程式是否有更新...等等的機制
假設Sever沒有特別的設定
但程式有更新
那麼該應用程式就會重新啟動
這時候Session也會重新來過
除非在Server尚有啟動State Service,並且指定用State Service甚至State Server來跨Server處理
否則只要IIS中的專案重新啟動Session就會遺失重來

^.^a
本篇文章回覆於2019-08-06 10:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
其他Session可能導致遺失的還有好多好多可能
這一篇也參考一下

https://dotblogs.com.tw/hatelove/archive/2009/12/25/sessionmiss.aspx

^.^a
本篇文章回覆於2019-08-06 10:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.