一:Session簡介
Session是什麼呢?簡單來說就是伺服器給用戶端的一個編号。當一台web伺服器運作時,可能有若幹個使用者浏覽正在運正在這台伺服器上的網站。當每個使用者首次與這台web伺服器建立連接配接時,他就與這個伺服器建立了一個Session,同時伺服器會自動為其配置設定一個SessionID,用以辨別這個使用者的唯一身份。這個SessionID是由web伺服器随機産生的一個由24個字元組成的字元串,我們會在下面的實驗中見到它的實際樣子。
二:Asp.Net中Session的集中模式和配置
(1):InProc,Session存儲在程序内,這也是ASP.Net中的存儲方式,也是預設值
(2): StateServer,Session存儲在獨立的狀态服務即ASP.NET State Service中
(3):SQLServer,Session存儲在SQL Server資料庫中
(4):Custom,自定義儲存方式,可以儲存在Oracle、SQLServer、MongoDb、Redis中
本片文章主要講述Session在Redis中的存儲和共享
三:基于Redis的Session Provider配置
(1)分别對站點A和B的HomeController做如下更改,如下圖所示,增加了建立Session和擷取Session功能

分别對應的View視圖
(2)RedisProvider配置:Microsoft.Web.RedisSessionStateProvider
用Nuget安裝Microsoft.Web.RedisSessionStateProvider,如下圖:
修改配置檔案:
四:負載均衡Session測試
(1)浏覽器中輸入:http://192.168.152.128/ 建立Session
(2)浏覽器中輸入:http://192.168.152.128/home/getsessionvalue, 打開兩個Tab,一定要在同一個浏覽器視窗中打開,否則SessionID肯定是不一樣
從圖中可以看到站點A共享站點B建立的Session。
從redis中也可以看出剛剛建立的Session,如下圖