ASP.NET存储Session的StateServer
生活随笔
收集整理的這篇文章主要介紹了
ASP.NET存储Session的StateServer
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于公司要對服務器做個負載均衡,所以Web項目在兩臺前端服務器(web1、web2)各部署了一份。但是在項目中會用到session。當一開始在web1上登陸后,由于web1之后負載可能會變大,就有可能從web1跳轉到web2上。
從網上找了好多資料,自己也明白在web.config里配置
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" />
網上的好多例子都是把stateConnectionString="tcpip=127.0.0.1:42424",這樣做在一臺web服務器上當然沒問題,但是當把stateConnectionString改成stateConnectionString="tcpip=192.168.1.82:42424"的時候兩臺前端就會有問題。微軟也沒有給出具體的方案,MSDN上的例子也都是指向127.0.0.1的。后來經過研究和向高手請教才知道還得把保存Sessin的服務器的注冊表修改一下,在這里就是192.168.1.82這臺了,修改如下:
修改注冊表:
HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services"aspnet_state"Parameters
?
AllowRemoteConnection=1
?
然后重啟ASP.NET State Service
?
連接配置如下:
<sessionState mode="StateServer"
stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect"
timeout="60" />
之后經過測試果然就OK了。希望對其他的人有幫助。
從網上找了好多資料,自己也明白在web.config里配置
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" />
網上的好多例子都是把stateConnectionString="tcpip=127.0.0.1:42424",這樣做在一臺web服務器上當然沒問題,但是當把stateConnectionString改成stateConnectionString="tcpip=192.168.1.82:42424"的時候兩臺前端就會有問題。微軟也沒有給出具體的方案,MSDN上的例子也都是指向127.0.0.1的。后來經過研究和向高手請教才知道還得把保存Sessin的服務器的注冊表修改一下,在這里就是192.168.1.82這臺了,修改如下:
修改注冊表:
HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services"aspnet_state"Parameters
?
AllowRemoteConnection=1
?
然后重啟ASP.NET State Service
?
連接配置如下:
<sessionState mode="StateServer"
stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect"
timeout="60" />
之后經過測試果然就OK了。希望對其他的人有幫助。
另外還有一個問題至今不太明白。我做的wap頁面,頁面上會有ViewState存儲的數據,當不斷刷新頁面的時候,里面的數據會丟失,時間絕對沒有超過20分鐘。不知道是微軟的Bug還是什么,在Web頁面上不會出現這種問題。求解。
經過一段時間的摸索,最好在wap頁面上少用viewstate,如果啟用的asp.net狀態服務,那么最好把cookieless設成true,否則還會出現session丟失的現象。
?
轉載于:https://www.cnblogs.com/wenwuxianren/archive/2008/06/04/1213437.html
總結
以上是生活随笔為你收集整理的ASP.NET存储Session的StateServer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学用状态机模式,写的报销流程,请指教
- 下一篇: blender的汉化方法!