1. 程式人生 > >IIS中Session的配置

IIS中Session的配置

①.Inproc是預設的設定
表示會話狀態要由ASP.NET儲存到記憶體中,而且不用Cookie來傳遞會話ID。
示例:

②.mode屬性設為Off
整個網站禁用會話狀態,可在Web.config檔案中將sessionState元素的mode屬性設為Off。
假如某個網頁不需要訪問Session物件,應將那個頁的Page預編譯指令的EnableSessionState屬性設為False。

③.StateServer會話管理

示例:

埠修改:
通過在cmd中輸入指令regedit來修改登錄檔
HKLM\SYSTEM\CurrentControlSet\Services\aspnet_state中的Port值

④.用SQL Server進行會話管理

具體配置如下:

①、執行Framewor安裝目錄下的InstallSqlState.sql檔案,framework的安裝目錄為C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319

②、這時會提示錯誤,因為該應用沒有註冊。此時需要在命令列下注冊該應用,執行如下命令:

aspnet_regsql.exe -ssadd -sstype c -d -S -U -P

注:為資料庫名為ASPState ,為資料庫例項名像 IBM-PC\SQLEXPRESS (若資料庫不是2005的不要寫ip地址,否則會連線失敗),為sa(或與sa同等許可權的), 為 sa使用者名稱的密碼會話定義成功,但是會提示在web應用中進行相應的配置,此時檢視SQLServer會發現增加了資料庫ASPState,但是沒有表。

③、在命令列下執行如下命令:aspnet_regsql.exe -ssadd -sstype p -S -U -P

該命令對此應用進行了持久化操作。這時會看到ASPState資料庫裡面多了兩張表,ASPStateTempSession就可以用來儲存Session。應用時,需要在webconfig中新增如下配置:

配置節點為:<sessionState mode=“SQLServer” sqlConnectionString="server=;database=;uid=;pwd=;"cookieless=“false” timeout=“20” />如下:

雖然timeout設定的是20分鐘但是 過期以後仍然可以獲取到session的值。