当前位置: 首页 > news >正文

使Session不丢失的方法之一的体验

使Session不丢失的方法之一的体验

Session丢失已经是一种习以为常的问题了,在自己也了解一些如何解决的问题,但是也一直没有机会去用,现在由于新的项目要在B/S下开发,所以不得不让我考虑Session的问题。

解决session丢失的问题有两种方法:1)将session保存在一台sate server中。2)将session保存在sql server中。我们使用的数据库是oracle,不想再装一个数据库,所以用了第一种方法。

首先根据网上查的资料对webconfig文件中session部分进行修改。如下:

<sessionState 
  mode="StateServer" 
  cookieless="false" 
  timeout="240" 
  stateConnectionString="tcpip=10.164.222.122:42424" 
  stateNetworkTimeout="14400" 
/> 
<machineKey 
  validationKey="78AE3850338BFADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4" 
  decryptionKey="5FC88DFC24EA123C" 
  validation="SHA1"
/> 

然后再在10.164.222.122 这台电脑上的asp.net state server 服务启动

这样基本上就行了。体验一下。

我用了一个测试程序,在3个小时以后session仍然可用,更绝的是我的电脑都重起了,在其它电脑上打开的网页中session仍然可用。一番体验以后,感觉还真不错。

.NET Framework 常规参考 

<sessionState> 元素 
为当前应用程序配置会话状态设置。 

<configuration> 
<system.web> 
<sessionState> 

<sessionState mode="Off|InProc|StateServer|SQLServer" 
cookieless="true|false" 
timeout="number of minutes" 
stateConnectionString="tcpip=server:port" 
sqlConnectionString="sql connection string" 
stateNetworkTimeout="number of seconds"/> 
必选属性 
属性 选项 说明 
mode 指定在哪里存储会话状态。 
Off 指示会话状态未启用。 
InProc 指示在本地存储会话状态。 
StateServer 指示在远程计算机上存储会话状态。 
SQLServer 指示在 SQL Server 上存储会话状态。 

可选属性 
属性 选项 说明 
cookieless 指定不具有 Cookie 的会话是否应用于标识客户端会话。 
true 指示应使用不具有 Cookie 的会话。 
false 指示不应使用没有 Cookie 的会话。默认值为 false。 
timeout 指定在放弃一个会话前该会话可以处于空闲状态的分钟数。默认值为 20。 
stateConnectionString 指定远程存储会话状态的服务器名称和端口。例如“tcpip=127.0.0.1:42424”。当 mode 为 StateServer 时该属性是必需的。 
sqlConnectionString 为 SQL Server 指定连接字符串。例如“data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind”。当 mode 为 SQLServer 时该属性是必需的。 
stateNetworkTimeout 在使用 StateServer 模式存储会话状态时,指定在放弃会话之前 Web 服务器和状态服务器之间的 TCP/IP 网络连接空闲的时间(以秒为单位)。默认值为 10。 

备注 
使用 StateServer 模式 

确保运行 ASP.NET 状态服务的服务器是要存储会话状态信息的远程服务器。该服务与 ASP.NET 一起安装,其默认位置为 <驱动器>:\systemroot\Microsoft.NET\Framework\version\aspnet_state.exe。 
在应用程序的 Web.config 文件中,设置 mode=StateServer 并设置 stateConnectionString 属性。例如,stateConnectionString="tcpip=sarath:42424"。 
使用 SQLServer 模式 

在运行 SQL Server 的计算机(它将存储会话状态)上运行 InstallSqlState.sql(默认的安装位置为 <驱动器>:\systemroot\Microsoft.NET\Framework\version)。这将创建一个名为 ASPState 的数据库,该数据库具有新的存储过程并且在 TempDB 数据库中具有 ASPStateTempApplications 表和 ASPStateTempSessions 表。 
在应用程序的 Web.config 文件中,设置 mode=SQLServer 并设置 sqlConnectionString 属性。例如,sqlConnectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。 
示例 
以下示例指定若干会话状态配置设置。 

<configuration> 
<system.web> 
<sessionState mode="InProc" 
cookieless="true" 
timeout="20"/> 
</sessionState> 
</system.web> 
</configuration> 
要求 
包含于:<system.web> 

Web 平台:IIS 5.0、IIS 5.1、IIS 6.0 

配置文件:Machine.config、Web.config 

配置节处理程序:System.Web.SessionState.SessionStateSectionHandler

相关文章:

  • [Remoting FAQ]Loading a Remoting Host On IIS得到BadImageFormatException
  • 如何添加任务栏按钮
  • boot.bin
  • 生病了。。。郁闷
  • directxsdk jun 2006
  • 关于超过255台电脑的内网IP规划问题
  • 关于S10network及S08iptables的一点点心得!
  • Windows Server十大隐患服务
  • [转] 应聘Java笔试时可能出现问题及其答案(第十一部分)
  • 令青年人眼红的四大创业资源
  • VS2005 “延时通知”
  • 个人创业的四个95%
  • 验证
  • 用C#搞对象(一)——启程
  • 告诉自己
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • CentOS 7 修改主机名
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • nodejs:开发并发布一个nodejs包
  • Python3爬取英雄联盟英雄皮肤大图
  • python学习笔记-类对象的信息
  • spring boot 整合mybatis 无法输出sql的问题
  • uva 10370 Above Average
  • 复杂数据处理
  • 简析gRPC client 连接管理
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 使用 Docker 部署 Spring Boot项目
  • 栈实现走出迷宫(C++)
  • Hibernate主键生成策略及选择
  • Nginx实现动静分离
  • 整理一些计算机基础知识!
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #QT项目实战(天气预报)
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (2020)Java后端开发----(面试题和笔试题)
  • (3)(3.5) 遥测无线电区域条例
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (多级缓存)缓存同步
  • (附源码)计算机毕业设计高校学生选课系统
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (推荐)叮当——中文语音对话机器人
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)关于多人操作数据的处理策略
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .net MySql