一般情況下,我們喜歡使用Session儲存我們的變數。Asp.Net提供了下面一些方法儲存Session的值:
InProc
State Server
SQL Server
“InProc”表示我們使用傳統ASP一樣的方法儲存Session的值,而且“State Server”則表示使用另外一台主機來儲存Session的值。當然我們也能使用SQL Server儲存值,我們這篇文章就專門用於講解這種方法。
運行InstallSqlState.sql檔案
首先需要在Winnt\Microsoft.Net中找到InstallSqlState.sql檔案,然後在SQL Server 中執行它。在我的機器中,它存在於E:\WINNT\Microsoft.NET\Framework\v1.0.2914\目錄中。這個檔案是微軟自己提供的,裡面有很全的SQL語句,修改你的web.config檔案,指定Session的mode為SQL Server
將web.config的sessionState部分改成:
<sessionState mode="SQLServer" sqlConnectionString="data source=WIN2000;userid= sa;password=" cookieless= "false"timeout= "20" />
建立Asp.Net Web Forms
現在所有的Session變數都儲存在資料表中,而不是記憶體中了。你可開啟ASPStateTempSessions表來查看這些Session資料了。
刪除這些資料庫和表
如果你不喜歡這個資料儲存方式,看得實在是不爽,那麼你可以把這些表和資料庫完全刪除掉。這個也不要擔心這種刪除會影響資料庫(因為害怕誤刪除一些資料),因為微軟同樣也得供給你們一個刪除SQL 檔案,名叫UnintallSQLState.sql。它與IntallSQLState.sql一樣放在.Net的Config目錄中。
另:
2 儲存在Windows服務中
啟動asp.net state service 服務(net start aspnet_state)
修改Web.config
<configuration >
<system.web >
<sessionState mode= "StateServer "
stateConnectionString= "tcpip=127.0.0.1:42424 " / >
</system.web >
</configuration >
3 儲存在資料庫中
在microsoft sql server query analyzer 中運行installsqlstate.sql,這個檔案在 "C:\WINNT\Microsoft.NET\Framework\v1.1.4322"下面找
修改Web.config
<configuration >
<system.web >
<sessionState
mode="SQLServer"
sqlConnectionString="data source=.;user id=sa;password=135"
cookieless= "false"
timeout= "20" />
</system.web >
</configuration >
重啟SQL server和SQL Server Agent服務.
可以用下面的SQL 查詢會話
select * from AspStateTempSessions