.NetFramework站点延长会话缓存时间的一次尝试

前言

.netframework的网站。经常刷新,频繁登录倒是其次,查询条件频繁选择倒是很烦人。
设置IIS连接池效果不是很理想。

尝试

web.config 设置

 <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" 
 sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
  cookieless="false" timeout="300" />

测试后不生效

学习

了解sessionState

<system.web>
    <sessionState 
        mode="InProc"             <!-- 存储模式 -->
        cookieless="UseCookies"   <!-- 会话ID传递方式 -->
        timeout="20"              <!-- 超时时间(分钟) -->
        stateConnectionString="tcpip=127.0.0.1:42424"  <!-- StateServer模式连接字符串 -->
        sqlConnectionString="data source=.\SQLEXPRESS;..."  <!-- SQLServer模式连接字符串 -->
        customProvider="..."      <!-- 自定义提供程序 -->
    />
 </system.web>   

InProc(默认) 保存在IIS的内存中。
StateServer 保存在服务进程(如 ASP.NET State Service)中。
SQLServer 据存储在 SQL Server 数据库中。

我的需求其实不复杂,单服务器站点,能维持四小时办公不重复登录就行。使用InPro效果不太好,会出现网络中断导致重登。SQLServer,又没什么必要。
虽然cookie、redis等也能解决,但封装、自定义太多的老项目,并不想改动代码。

解决办法

采用StateServer:

<system.web>
	<sessionState 
	  mode="StateServer"  
	  stateConnectionString="tcpip=127.0.0.1:42424" 
	  timeout="300"             <!-- 超时时间(分钟) -->
	/>
</system.web>

1、查看服务,ASP.NET State Service是否处于自启动。
2、防火墙入网规则,打开42424端口。

重启连接池
测试成功,session能维持到吃午饭了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值