Session的配置
人人都知道怎么去使用session,但是初學者,尤其是自學的學生可能對于進程外的Session不甚了解,今天我就花半個小時做個簡單的示范。
首先,session其雖然是基于 cookie的,同時只對本次會話來產生效果,(原理很簡單,就是字典內保存一個字典,外層字典的key也就是asp_netsessionId是 由.NET自動分配的并保存到只對本次會話有效的cookie中,我們的工作只是負責內部我們需要的字典的內容,并有.NET自動分配一塊區域保存起來, 當然這個是有一定的時效性的,模擬代碼可以看看資料,或者反編譯下看看,很簡單,這里就不說了)但是有時候我們就會發現默認的session存儲方式,可 能造成數據的丟失,雖然他的存儲類型是object,但是我們要是存儲大量的數據就經常出現數據的丟失。
下面我介紹兩種人人都知道,我也剛知道的配置手段。這兩種都是進程外的session機制,可以在IIS或ASP.NET服務意外關閉時繼續保持狀態.
1.使用aspnet_state.exe
步驟:對于win7不用找,直接打開服務,其一般是已經注冊了的。
開始---運行---services.msc 找到
然后打開它,之后我們在web.config內配置Session狀態
??42424是默認端口號(可以修改),同時默認的也是本機訪問,要是需要可以在注冊表配置,以滿足遠程服務器的。
然后AllowRemoteConnection值修改為1,0代表本機。之后字需要修改web.config中的IP即可。
現在我們來測試一下效果:
我前面的就不在演示了,這里演示一下,獲取session后關閉了服務器
,之后再打開,我就可以看到 多次刷新session任然保持存在。2.使用SQLServer保存
微軟提供了2中保存方式(附帶創建腳本)
臨時儲存區:InstallSqlState.sql & UninstallSqlState.sql
永久儲存區:InstallPersistSqlState.sql & UninstallPersistSqlState.sql
步驟:我們在.NET安裝目錄中打開
,出現
之后配置一下web.config,
| <sessionState mode="SQLServer" sqlConnectionString="...."></sessionState> |
?我們打開SSMS.
運行我們上面官方提供的腳本,這里拿出一個臨時儲存區的腳本運行
臨時腳本雖然會報錯,但是不用管,沒什么影響,之后會出現一個數據庫
?
怎么測試就不說了,都是一樣的,還有就是永久存儲區的建立都是一樣的, 只是內部會保存具體的信息,同時我們可以配合SQL代理
?作業來自動刪除失效的session對象.
這里不同進程間的通訊涉及到序列化問題,這里就不說了,里面有
就很容易看出來。好了,今天到此結束,休息一會去了。
總結
以上是生活随笔為你收集整理的Session的配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视杆细胞所含的感光物质是(视杆细胞)
- 下一篇: 什么是对象,为什么要面向对象,怎么才能面