服務器:winserver2012R2跨域
iis 發佈網站後,正常瀏覽網頁,時常跳到登陸頁面,第一反應session過時,由於登陸信息都存在session,但session 都是默認配置過時時間爲20分鐘,應該不會過時。服務器
而後百度搜索問題,查到一個比較可信的答案:session
Session丟失的解決辦法小結
最近在作ASP.NET項目時,測試網站總是取不出Session中的值,在網上搜索了一下,找到一些解決方法,記錄在這裏。最後使用存儲在StateServer中的辦法解決了問題。
SessionState 的Timeout),其主要緣由有三種
一:有些殺病毒軟件會去掃描您的Web.Config文件,那時Session確定掉,這是微軟的說法。
二:程序內部裏有讓Session掉失的代碼,及服務器內存不足產生的。
三:程序有框架頁面和跨域狀況。
第一種解決辦法是:使殺病毒軟件屏蔽掃描Web.Config文件(程序運行時本身也不要去編輯它)
第二種是檢查代碼有無Session.Abandon()之類的。
第三種是在Window服務中將ASP.NET State Service 啓動。框架
試了下第三種方法,依然不行。。。GG測試
沒辦法只能本身慢慢查了,通過後來仔細尋找,發現緣由:網站
iis程序池中把最大工做進程數改爲5個了。spa
把上圖標紅的數改爲1便可;server
分析緣由:應該是登陸了是在一個進程內,以後點擊網頁後進程改變,每一個進程之間又是獨立的因此致使找不到用戶信息,通過網站攔截器跳轉到登陸頁面。blog