c 中Session丟失問題解決辦法

2021-05-22 00:39:57 字數 1556 閱讀 5141

我們在用c#開發程式的時候經常會遇到session很不穩定,老是資料丟失。下面就是session資料丟失的解決辦法:

1、在web.config檔案中修改session狀態儲存模式,如:

2、啟動系統服務「asp.net狀態服務 」,系統預設是手動啟動的

3、如果session中儲存的資料型別是自定義的,如結構,請在自定義資料型別處序列化會話狀態,即在類或結構申明前加[serializable]

完成以上3部,狀態即可儲存,但是在訪問頁面是瀏覽器顯示的路徑中增加了一段字元,如:(s(lto3j0eg25cztmqtxevm5tb4))

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

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

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

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

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

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

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

第三種是在window服務中將asp.net state service 啟動。

下面是幫助中的內容:

(ms-help://ms.vscc.2003/ms.msdnqtr.2003feb.2052/cpguide/html/cpconsessionstate.htm)

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

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

在應用程式的 web.config 檔案的 元素中,設定乙個導致新程序在條件被滿足時啟動的屬性,例如 memorylimit。

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

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

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

如果在應用程式的 web.config 檔案的 元素中啟用了網路園模式,請不要使用程序內會話狀態模式。否則將發生隨機資料丟失。

還有這二種:

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

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

參考:http://www.dotnet247.com/247reference/msgs/58/290316.aspx

Session中丟失的問題解決

我們在用c 開發程式的時候經常會遇到session很不穩定,老是資料丟失。下面就是session資料丟失的解決辦法希望對您有好處。1 在web.config檔案中修改session狀態儲存模式,如 2 啟動系統服務 asp.net狀態服務 系統預設是手動啟動的 3 如果session中儲存的資料型別...

Session丟失問題解決方案

session丟失已經是一種習以為常的問題了,在b s下開發,所以不得不讓我考慮session的問題。解決session丟失的問題有兩種方法 1 將session儲存在一台sate server中。2 將session儲存在sql server中。我們使用的資料庫是oracle,不想再裝乙個資料庫,...

PHP Session丟失問題解決

正常設定session,但是在某些windows伺服器始終有session丟失情況 session1.php 正常設定session,但是在某些windows伺服器造成session丟失 session start session test helloworld header location se...