session 莫名丟失和過期完美解決

2021-08-25 06:36:17 字數 2321 閱讀 4035

session丟失的解決辦法小結

最近在做asp.net專案時,測試**老是取不出session中的值,在網上搜尋了一下,找到一些解決方法,記錄在這裡。最後使用儲存在stateserver中的辦法解決了問題。

sessionstate的timeout),其主要原因有三種。

一:有些殺病毒軟體會去掃瞄您的web.config檔案,那時session肯定掉,這是微軟的說法。

二:程式內部裡有讓session掉失的**,及伺服器記憶體不足產生的。

三:程式有框架頁面和跨域情況。

第一種解決辦法是:使殺病毒軟體遮蔽掃瞄web.config檔案(程式執行時自己也不要去編輯它)

第二種是檢查**有無session.abandon()之類的。

第三種是在window服務中將asp.netstateservice啟動。

下面是幫助中的內容:

(ms-

help:

asp.net提供乙個簡單、易於使用的會話狀態模型,您可以使用該模型跨多個web請求儲存任意資料和物件。它使用基於字典的、記憶體中的物件引用(這些物件引用存在於iis程序中)快取來完成該操作。使用程序內會話狀態模式時請考慮下面的限制:

使用程序內會話狀態模式時,如果aspnet_wp.exe或應用程式域重新啟動,則會話狀態資料將丟失。這些重新啟動通常會在下面的情況中發生:

在應用程式的web.config檔案的

<

processmodel

>

元素中,設定乙個導致新程序在條件被滿足時啟動的屬性,例如memorylimit。

修改global.asax或web.config檔案。

更改到web應用程式的bin目錄。

用防毒軟體掃瞄並修改global.asax檔案、web.config檔案或web應用程式的bin目錄下的檔案。

如果在應用程式的web.config檔案的

<

processmodel

>

元素中啟用了網路園模式,請不要使用程序內會話狀態模式。否則將發生隨機資料丟失。

還有這二種:

一:在第乙個頁面置了session,然後redirect去第二個頁面。解決方法是在redirect中設定endresponse為false。

二:asp.net中使用了access資料庫,而且資料庫是放在bin目錄中的。解決方法是不要放會更新的檔案在bin目錄中。

參考:http:

asp.net預設配置下,session莫名丟失的原因及解決辦法

正常操作情況下session會無故丟失。因為程式是在不停的被操作,排除session超時的可能。另外,session超時時間被設定成60分鐘,不會這麼快就超時的。

這次到csdn上搜了一下帖子,發現好多人在討論這個問題,然後我又google了一下,發現微軟**上也有類似的內容。

現在我就把原因和解決辦法寫出來。

原因:由於asp.net程式是預設配置,所以web.config檔案中關於session的設定如下:

<

sessionstatemode='

inproc

'stateconnectionstring='

tcpip=127.0.0.1:42424

'sqlconnectionstring='

datasource=127.0.0.1;trusted_connection=yes

'cookieless='

true

'timeout='

60'/>

我們會發現sessionstate標籤中有個屬性mode,它可以有3種取值:inproc、stateserver

?sqlserver(大小寫敏感)。預設情況下是inproc,也就是將session儲存在程序內(iis5是aspnet_wp.exe,而iis6是w3wp.exe),這個程序不穩定,在某些事件發生時,程序會重起,所以造成了儲存在該程序內的session丟失。

哪些情況下該程序會重起呢?微軟的一篇文章告訴了我們:

1、配置檔案中processmodel標籤的memorylimit屬性

2、global.asax或者web.config檔案被更改

3、bin資料夾中的web程式(dll)被修改

4、防毒軟體掃瞄了一些.config檔案。

更多的資訊請參考prb:sessionvariablesarelostintermittentlyin=

'tcpip=127.0.0.1:42424

'屬性,其中有個ip位址,預設為本機(

127.0

.0.1

public

class

myclass

具體的序列化相關的知識請參這裡。

至此,問題解決。

詭異的 session丟失 和 標籤

專案發布到伺服器上面了,但是客戶在使用的時候發現,只要進入新增頁面和修改頁面。再進行操作就會自動跳轉到登陸頁面 我設定了session儲存使用者登陸資訊 而別的頁面就不會出現這個問題。從下午開始找個問題,開始以為不知道只有這兩個頁面有問題,以為全部都是這樣的問題,是iis的設定問題。我將sessio...

運算精度丟失和數值丟失問題

標籤 空格分隔 程式設計競賽 程式設計錯題 在做題時,我經常會碰到程式很對,但結果出錯的問題。如下面這個。題目描述 經常出國旅行的驢友都知道,需要及時了解當地的氣溫狀況。但不少國家採用了不同的溫度計量單位 有些使用華氏溫度標準 f 有些使用攝氏溫度 c 現在,請你根據溫度轉換公式設計乙個溫度轉換程式...

kafka丟失和重複消費資料

kafka作為當下流行的高併發訊息中介軟體,大量用於資料採集,實時處理等場景,我們在享受他的高併發,高可靠時,還是不得不面對可能存在的問題,最常見的就是丟包,重發問題。1 丟包問題 訊息推送服務,每天早上,手機上各終端都會給使用者推送訊息,這時候流量劇增,可能會出現kafka傳送資料過快,導致伺服器...