程序內和程序外Session

2021-06-22 13:05:02 字數 2692 閱讀 3955

三種

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

測試**如下:

using

system;

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 乙個前台作業可以由多個程序組成,乙個後台作業也可以由多個程序組...