IIS7 會話狀態 Session State

2021-09-24 17:23:40 字數 1949 閱讀 1752

asp.net提供了5種會話狀態選項:

inproc

stateserver

sqlserver

custom

off

1. inproc

inproc選項支援在程序內儲存會話狀態,實際上是在w3wp.exe工作程序中儲存會話狀態。這意味著儲存會話狀態資料將分別儲存在每台伺服器中,因此其他伺服器無法訪問當前伺服器會話狀態資料。這還意味著乙個應用程式池**操作將導致會話狀態的丟失。在不考慮off選項的情況下,這種解決方案執行速度最快,但是,除非我們應用粘性會話機制,否則這種解決方案無法在web farm環境中正常工作。如果使用了粘性會話機制、同時沒有使用web garden的話,那麼inproc是乙個可行的解決方案。

如果需要在web.config檔案或者其他配置檔案中設定會話狀態,可以在配置檔案的配置節中新增乙個sessionstate標記,如下面的**所示。

2. stateserver

stateserver是微軟公司提供的另一種解決方案,但是這種解決方式沒有提供故障轉移的功能。當在伺服器中成功地安裝了asp.net之後,windows services將增加一項名為asp.net state service的服務,預設情況下,這個服務處於禁用狀態,但是可以隨時啟用這項服務。我們需要將該服務的啟動模式設定為automatic,這樣每次系統重啟時,這項服務都會自動啟動。

預設情況下,asp.net sessionstate服務是無法遠端訪問的,如果需要遠端執行asp.net sessionstate服務,那麼需要在登錄檔中將hkey_local_machine\system\ currentcontrolset\services\aspnet_state\parameters\allowremoteconnection的值設為1。

如果不打算在本地伺服器中使用預設的狀態伺服器,那麼可以根據需要設定引數。tcpip=10.0.0.10:42424" />

3. sqlserver

微軟提供的第三個解決方案是sqlserver會話狀態。如果當前應用程式執行環境中使用了乙個sqlserver群集,那麼這種解決方案是一種非常合適的解決方案。與其他方案相比,sqlserver會話狀態的效能開銷最高,但是因為sqlserver會話狀態提供了冗餘支援,所以這種方案對效能的影響也是微不足道的。在部署這種解決方案之前,請務必確保系統效能能夠滿足當前應用程式的要求,同時,還要保證系統具有良好的可伸縮性。

sql server會話狀態的配置較為複雜,需要使用aspnet_regsql.exe工具

4. custom

asp.net支援實現自定義的會話狀態提供程式。所以,可以實現一種不同於微軟解決方案的方案。與其他選項類似,一旦成功地開發了自定義的解決方案並將其安裝部署到伺服器中之後,那麼,我們必須對**的web.config檔案以及應用程式根目錄下的web.config檔案進行更新,使之指向自定義的提供程式。

5. off

可以完全關閉會話狀態,在某些情況下這樣做是有意義的,因為啟用會話狀態後,即使我們沒有使用會話狀態,系統效能也會有所下降。為了關閉會話狀態,我們可以按照"inproc"一節的內容進行操作,唯一不同之處是選擇off而不是選擇in process。在iis manager中,這種做法被稱為not enabled。

第三方會話狀態解決方案

scaleout software(www.scaleoutsoftware.com)和alachisoft(www.alachisoft.com)是兩家著名的第三方軟體廠商,致力於提供web farm會話狀態解決方案。這兩家第三方軟體廠商的產品均可以應用於高可用、高可伸縮性的web farm系統,並且可以在程序內儲存會話狀態資料,同時支援立即複製所有的修改;此外,產品還支援在程序外儲存會話資料,為了在程序外儲存會話資料,需要使用執行在所有伺服器中的自定義工作程序。

IIS配置共享Session會話

步驟1 在測試環境部署集群。步驟2 在集群機器的一台機器上開啟服務,找到aspnet state server服務,stateserver會話管理。確保服務開啟。步驟3 在步驟2這台機器上開啟登錄檔,hkey local machine system currentcontrolset servic...

IIS7許可權簡述

worker process是iis應用程式的宿主,在任務管理器中可以看到每乙個worker process就是乙個w3wp.exe.工作程序標識 worker process identity wpi 是worker process執行時的身份 不過有時候通過ui找不到這個物件大約是個bug,通過...

IIS7配置Gzip壓縮

開啟配置http壓縮 gzip 在iis7中配置gzip壓縮相比iis6來說實在容易了許多,而且預設情況下就是啟用gzip壓縮的。如果沒有,則可以再功能檢視下找到 壓縮 項,進入之後就會看到 靜態內容壓縮 和 動態內容壓縮 兩個選項,勾上即可。配置啟用壓縮的檔案型別及其他選項 我們可以看到,iis實...