Session的SqlServer模式的配置

2021-09-22 16:50:42 字數 1707 閱讀 4926

很多時候,由於各種莫名其妙的原因,會導致session丟失。不過asp.net還允許將會話資料儲存到乙個資料庫伺服器中,方法是將mode屬性變成sqlserver。 在這種情況下,asp.net嘗試將會話資料儲存到由sqlconnectionstring屬性(其中包含資料來源以及登入伺服器所需的安全憑證)指定的sql server中,這樣能夠保證session丟失的問題。

1、  配置aspstate session 資料庫

在命令列下執行如下命令:aspnet_regsql.exe  -ssadd -sstype p -s -u -p

該命令對此應用進行了持久化操作。這時會看到多乙個aspstate資料庫,裡面兩張表,aspstatetempsessions就可以用來儲存session。

注:為資料庫例項名,為sa(或與sa同等許可權的),為 sa使用者名稱的密碼

2、應用時,需要在webconfig中新增如下配置:

配置節點如下:

;database=;uid=;password=;"cookieless="false" timeout="20" />

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

3. 專案應用

1. 新建專案 web專案,在加入如下**:

session["sessionid"] = datetime.now.tostring("yyyy-mm-dd hh:mm:ss");

response.write(session["sessionid"]);

2. web.config 中增加sessionstate 配置

3. 執行該**,之後檢視資料庫aspstate中的資料表aspstatetempsessions增加了一條資料

注意:只有在寫session 的時候,才會在aspstatetempsessions表裡增加了一條session記錄。

2. created和expires是這個session的建立日期和有效期 這個有效期是根據配置檔案中timeout算出來的,雖然時間達到有效期了 但是還能獲取到session(不知道這個有效期有什麼用,但是用sqlserver的session的模式 就是為了不掉線,這點也符合了這個初衷)

3. lockdata與lockdatalocal都是最後一次更新session的時間 (每次操作該session的時候,它的有效期都會改變)。

4. timeout是配置檔案中配置的超時分鐘數(這裡的1是我測試超時時間的時候臨時在配置檔案中改的,預設是20).

5. sessionitemshort是真正的session的內容,資料型別是varbinary(7000),存的內容可以是int string 等常用型別,如果是集合或是物件,則必須是可序列化的([serializable]可序列化的屬性)。

注意:要設定session過期刪除,啟動sql server **中的作業完成。

出處:微博:章為忠

ISA SERVER日誌存放SQL SERVER中

在預設安裝 isa 2004 或是2006後,將會自動安裝簡易版的 sql server 來存放防火牆與 webproxy 的連線訪問日誌 可是由於 msde 僅限於單機連線的使用 並且在訪問上也有容量大小的限制 因此為了提公升整體 isa 的執行能力 建議可以改由將這些頻繁的日誌檔案訪問 寫入到內...

鏈結sqlserver 安裝sqlserver

在進行部署專案的時候。特別是重做系統之後要注意,最好安裝資料庫,在安裝其他編輯軟體 而且,有乙個特點是先安裝低版本可以安裝高版本,但是你裝高版本後很難安裝高版本 我這有個sqlserver 2008 r2 在安裝時,不要害怕,一般都是預設安裝,讓你操作的時候 也不多,而且,安裝的位置一般都是在系統盤...

localhost無法連線sqlserver

因為工作關係我的電腦安裝了2012 2017兩個版本的sqlserver,之後把2017的解除安裝了,出現了vs開啟專案不報錯,一直在轉圈的問題,之後試過本機登入sqlserver 發現登不上,要指定例項才可以。開啟配置管理器 1.開啟sqlserver網路配置,點選例項協議 2.雙擊tcp ip ...