三種
session
:1.inproc(
程序內)-
asp.net
預設就是這種
優點:速度快
缺點:但記憶體小,儲存有限,易爆滿導致重啟資料丟失
程序外:可以在
iis或
aspnet
服務意外關閉時繼續保持狀態,
注意此時儲存到
session
中的物件必須支援序列化
:2.stateserver:
使用aspnet_state.exe 2.
1開啟服務:我的電腦-管理
-服務與應用程式-服務
-asp.net state service(asp.net
狀態服務)
2.2修改配置檔案:
節點中新增
【asp.net
狀態服務埠號預設:
42424】
2.3asp.net
狀態服務只限本機使用
如果需要儲存外部的
session
需要修改登錄檔
設定是否允許遠端使用,位置:
c:\windows\microsoft.net\framework\v4.0.30319
hkey_local_machine\system\currentcontrolset\services\aspnet_state\parameters
\allowrenoteconnection
值改為1
測試**如下:
usingsystem;
namespace
webform
else}}
[ serializable]
//必須是可序列化的類
public
class
person
private
string
name;
public
string
getname()
}}
web.config
<?xml version =" 1.0 "
?>
<
configuration
>
<
system.web
>
<
compilation
debug
= "true "
targetframework
= "4.0 "
/>
<
sessionstate
mode
= "stateserver "
stateconnectionstring
=" tcpip=localhost:42424 "
/>
system.web
>
<
connectionstrings
>
<
add
name
= "connstr "
connectionstring
=" server=.;database=school;uid=sa;pwd=123456 "
/>
connectionstrings
>
configuration
>
3.sqlserver
3.1使用aspnet_regsql.exe執行
session
資料庫指令碼指令碼路徑
c:\windows\microsoft.net\framework\v4.0.30319
臨時儲存區:
installsqlstate.sql & uninstallsqlstate.sql
永久儲存區:
installpersistsqlstate.sql & uninstallpersistsqlstate.sql(installpersistsqlstate
需要使用
aspstate
資料庫需自己建立)
3.2修改配置檔案如下:
<?xml version =" 1.0 "
?>
<
configuration
>
<
system.web
>
<
compilation
debug
= "true "
targetframework
= "4.0 "
/>
<
sessionstate
mode
= "sqlserver"
/>
system.web
>
<
connectionstrings
>
<
add
name
= "connstr "
connectionstring
=" server=.;database=school;uid=sa;pwd=123456 "
/>
connectionstrings
>
configuration
>
Session程序外儲存
為什麼有session程序外儲存?隨著專案的複雜度增加,使用者量增加,一台伺服器已經不可以支援很多使用者訪問一台伺服器了 使用者提交到一台伺服器,會再這台伺服器中保留資料,但是要訪問其他伺服器就要重新提交 解決方案 實現session共享 用web伺服器集群 專門找一台機器,做session狀態儲存...
三 一 兩種託管模式,程序內與程序外
程序內和程序外 這個就是工作程序 我們把這個當前程序結束。開啟的瀏覽器的頁面 也隨之停止了。所以我們的專案是依賴iis express worker process的 程序內就是依賴了iis 程序外的託管。kestrel使用了dotnet.exe 這裡我們設定為程序內託管 專案啟動的方式 中介軟體管...
Session與程序組
在第 1 節 訊號的基本概念 中我說過 shell可以同時執行乙個前台程序和任意多個後台程序 其實是不全面的,現在我們來研究更複雜的情況。事實上,shell分前後台來控制的不是程序而是作業 job 或者程序組 process group 乙個前台作業可以由多個程序組成,乙個後台作業也可以由多個程序組...