session如何保存在專門的StateServer服務器中


session保存在專門的StateServer中,該種方式,性能損失比sql略好。比inproc據說有10%-15%的性能損失。怎么使用StateServer 服務器呢?

     1、初始化StateServer服務器

          啟動ASP.NET 狀態服務【aspnet_state】,該服務默認是手動啟動的,可以通過修改注冊表,設置為自動啟動並允許遠程連接。修改方法如下:

          修改注冊表: [HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/aspnet_state/Parameters]
          設置 AllowRemoteConnection = 1 , 設置 Port = 42424 (十進制,默認即為42424)
          AllowRemoteConnection ,0僅能本機使用,1可以供其他機器使用.
          Port是服務的端口號

    2、修改webconfig配置文件

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="60"/>

     其中stateConnectionString中的tcpip表示StateServer服務器的ip和端口。

    注意StateServer不支持負載均衡,如果是大並發請保存在sql中。

參考資料:

使用一個 SQL 數據庫 SQL Server 會話狀態的所有應用程序可能導致瓶頸

http://support.microsoft.com/kb/836680/zh-cn

ASP.NET 中 Session 實現原理淺析 [1] /[2]

http://www.cnblogs.com/flier/archive/2004/08/04/30226.html

http://www.cnblogs.com/flier/archive/2004/08/07/30902.html

理解Session State模式+ASP.NET SESSION丟失FAQ [翻譯]

http://www.cnblogs.com/tonyqus/archive/2006/10/24/522618.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM