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了。希望对其他的人有帮助。

转自:http://blog.csdn.net/lee576/article/details/3394905

时间: 2024-10-29 19:06:18

ASP.NET存储Session的StateServer的相关文章

Asp.net Core 使用Redis存储Session

前言 Asp.net Core 改变了之前的封闭,现在开源且开放,下面我们来用Redis存储Session来做一个简单的测试,或者叫做中间件(middleware). 对于Session来说褒贬不一,很多人直接说不要用,也有很多人在用,这个也没有绝对的这义,个人认为只要不影什么且又可以方便实现的东西是可以用的,现在不对可不可用做表态,我们只关心实现. 类库引用 这个相对于之前的.net是方便了不少,需要在project.json中的dependencies节点中添加如下内容: "StackExc

ASP.NET中Session的sessionState 4种mode模式

1. sessionState的4种mode模式 在ASP.NET中Session的sessionState的4中mode模式:Off.InProc.StateServer及SqlServer. 2. Off模式 <sessionState mode="Off"></sessionState> 关闭模式,即不需要使用Session. 单个页面关闭Session: <%@ Page EnableSessionState="false" %

Asp.Net将Session保存在数据库中

1.由于项目dll文件变动比较频繁,而保存登陆的状态又保存在Session中,所以导致用户经常无故掉线.(dll变动的时候导致Session丢失) 2.有一种方法可以长期保存session,那就是session的SqlServer模式.还是先介绍一下session的四种模式吧: ASP.NET会话状态模块在Web.config文件中<System.web>标记下的<Sessionstate>标记的mode属性来决定该属性的四种可能的值: Off. Inproc StateServe

Session中StateServer的使用方法

最近项目中用到 Session的StateServer模式,我们知道sessionState有四种模式:off,inProc,StateServer,SqlServer. 而StateServer 是将session存储到内存中的,使用此种方式必须启动ASP.NET 状态windows服务. StateServer 对我最大的感觉就部署在同一个server的网站,仅仅要配置一致,那么都能够对同一个Session 值进行訪问. 也就是Session能够 跨网站訪问. 以下来说使用方法 网站配置例如

Asp.net 实现Session分布式储存(Redis,Mongodb,Mysql等) sessionState Custom

对于asp.net 程序员来说,Session的存储方式有InProc.StateServer.SQLServer和Custom,但是Custom确很少有人提及.但Custom确实最好用,目前最实用和最灵活一种方式,因为Custom可以实现各种情况的Session存储,特别对于大型网站尤为重要,解决Session丢失和Session效率的最佳实现方式,也是实现单点登录的最佳途径. 对于InProc.StateServer和SQLServer各自优缺点,网上一大堆,这里就不做详解. 重要的两点 1

ASP.NET中Session的个人浅谈

看到博客园的一个哥们写的面试经历,想到了面试中常问到的Session,一时手痒就谈下自己对Session的理解,这东西最开始在用户登录登出的时候用到过,后来一直没怎么用过,里面还是有很多知识点值得注意的.先简单的说下吧,Session是分为客户端Session和服务端Session: 客户端Session Session称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息,当用户首次与Web服务器建立连接的时候,服务器会给当前访问用户分发一个 SessionID作为标

Session中StateServer的用法

近期项目中用到 Session的StateServer模式,我们知道sessionState有四种模式:off,inProc,StateServer,SqlServer. 而StateServer 是将session存储到内存中的,使用此种方式必须启动ASP.NET 状态windows服务.StateServer 对我最大的感觉就部署在同一个服务器的站点,只要配置一致,那么都可以对同一个Session 值进行访问.也就是Session可以 跨站点访问.下面来说用法 站点配置如下: Web.con

asp.net中session的原理及应用

Session简介丶特性 1.Session是一种Web会话中的常用状态之一. 2.Session提供了一种把信息保存在服务器内存中的方式.他能储存任何数据类型,包含自定义对象. 3.每个客户端的Seesion是独立存储的. 4.在整个会话过程中,只要SessionID的cookie不丢失,都会保存Session信息的. 5.Session不能跨进程访问,只能由该会话的用户访问.应为提取Session数据的id标识是以Cookie的方式保存到访问者浏览器的缓存里的. 6.当会话终止,或过期时,服

nginx 负载均衡、用数据库存储Session,来实现多站点共享Session[转]

多站点共享Session常见的作法有: 1.使用.net自动的状态服务(Asp.net State Service); 2.使用.net的Session数据库: 3.使用Memcached. 4.使用Cookie方式实现多个站点间的共享(这种方式只限于几个站点都在同一域名的情况下): 这里我们就 演练一下 以数据库的形来存储Session,来实现多站点共享Session. 首先我们 建好一下站点,如下图: Default.aspx 其中 有二个Button  ,SetSession 主要是用于给