用SQL Server來進行會話狀態管理

iSQlServer發表於2009-10-27

  在呼叫伺服器後要繼續在伺服器中保留資料通常很難,你可以用SQL Server來進行會話狀態管理(使用者會話資料)。以下教你怎樣用它來進行管理。

  在頁面開發中,在伺服器呼叫裡保留資料是一個常見的不好解決的難題。你也許需要為你的應用程式或特殊使用者的會話儲存資訊。儲存這樣的資料被稱為狀態管理,ASP.NET為你提供了一些方法,這些方法能讓你通過各種途徑完成這一任務。這包括將資料儲存在一個狀態伺服器的記憶體中,或者通過Microsoft SQL伺服器。本文主要討論了用SQL伺服器來進行會話狀態管理(使用者會話資料)。

  為什麼需要進行狀態管理?

  在設定和使用SQL Server之前,你也許會想有必要這樣做嗎?頁面開發還有更讓人煩惱的一面,那就是HTTP是一項無狀態協議。它的執行是斷斷續續的,每個頁面都會按接受到的命令執行。命令執行完以後,所有用過的資料都會丟失。伺服器不會儲存關於那些呼叫的任何記憶。也就是說,它不會儲存相關記憶,除非有特殊的指令讓它儲存。

  會話變數

  以下是使用會話變數的格式:


  C#: Session["variable_name"] = value;
  VB.NET: Session("variable_name") = value

  當這個值被儲存了,使用者就可以在整個會話中使用它了。會話結束後,變數也就丟失了。你也可以使用迴歸狀態管理(這是我們下一次要討論的話題)來處理這些丟失的值。

  ASP.NET狀態管理

  ASP.NET允許你通過一個狀態伺服器或SQL伺服器將會話資料儲存在記憶體中。儲存的位置由應用程式的頁面配置檔案來決定。狀態管理選項是在系統中的sessionState元素中,頁面元素是在狀態管理中進行設定的。以下的示例顯示了怎樣使用SQL Server:


  mode="SQLServer"
  stateConnectionString="tcpip=127.0.0.1:42424"
  sqlConnectionString="data source=127.0.0.1;user id=username;password=password"
  cookieless="false"
  timeout="20" />

  注意,這些元素的名稱和屬性都要區分大小寫。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-617510/,如需轉載,請註明出處,否則將追究法律責任。

相關文章