我們在用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...