IIS配置共享Session會話

2021-09-26 19:01:11 字數 1208 閱讀 8670

步驟1:在測試環境部署集群。

步驟2:在集群機器的一台機器上開啟服務,找到aspnet state server服務,stateserver會話管理。確保服務開啟。

步驟3:在步驟2這台機器上開啟登錄檔,hkey_local_machine\system\currentcontrolset\services\aspnet_state\parameters。修改allowremoteconnection的項值為十進位制的1。修改port的項值為十進位制的10001。

步驟4:修改集群機器每台伺服器的webconfig檔案.在system.web節下新增以下2節點:

stateconnectionstring="tcpip=myserver:10001"

cookieless="false" timeout="60" />

注:將會話資料儲存到單獨的記憶體緩衝區中,再由單獨一台機器上執行

的windows服務來控制這個緩衝區。狀態服務全稱是「asp.net state service

」(aspnet_state.exe),狀態服務在一台名為myserver的機器的42424埠(預設埠)執行。要在伺服器上改變埠,可編輯hklm\system\currentcontrolset\services\aspnet_state登錄檔項中的port值。

優缺點:顯然,使用狀態服務的優點在於程序隔離,並可在web farm中共享。 使用這種模式,會話狀態的儲存將不

依賴於iis程序的失敗或者重啟,然而,一旦狀態服務中止,所有會話資料都會丟失。換言之,狀態服務不

像sql server那樣能持久儲存資料;它只是將資料儲存在記憶體中。

注:machinekey 的作用

按照msdn的標準說法:「對金鑰進行配置,以便將其用於對 forms 身份驗證 cookie 資料和檢視狀態資料進行加密和解密,並將其用於對程序外會話狀態標識進行驗證。」也就是說asp.net的很多加密,都是依賴於machinekey裡面的值,例如forms 身份驗證 cookie、viewstate的加密。預設情況下,asp.net的配置是自己動態生成,如果單台伺服器當然沒問題,但是如果多台伺服器負載均衡,machinekey還採用動態生成的方式,每台伺服器上的machinekey值不一致,就導致加密出來的結果也不一致,不能共享驗證和viewstate,所以對於多台伺服器負載均衡的情況,一定要在每台站點配置相同的machinekey。 

session共享方案

session 機制是一種伺服器端的機制,伺服器使用一種類似於雜湊表的結構來儲存資訊。session資訊預設是以檔案的形式儲存在服務端的。當程式需要為某個客戶端的請求建立乙個 session 的時候,伺服器首先檢查這個客戶端的請求 http request 裡是否已包含了乙個 session 標識 ...

Session資料共享

參考文章 比如 現在有三颱php伺服器,且實現了負載均衡,如何讓這三颱web伺服器共享session資料?session資料預設是以檔案的形式儲存在web伺服器的磁碟上,一般都是使用者登入成功的時候,儲存session資料。同乙個使用者登入後,就會將session儲存在某個web伺服器上,假設是儲存...

Session 共享方案

一 什麼是分布式系統?分布式系統 旨在支援應用程式和服務的開發,可以利用物理架構由多個自治的處理元素組成,不共享記憶體,通過網路傳送訊息合作。分布式系統的三個特點 多節點,訊息通訊,不共享記憶體。二 什麼是session?廣義的session 指會話控制。由於http協議是無狀態的,對於不同http...