博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Session的配置
阅读量:5287 次
发布时间:2019-06-14

本文共 1290 字,大约阅读时间需要 4 分钟。

人人都知道怎么去使用session,但是初学者,尤其是自学的学生可能对于进程外的Session不甚了解,今天我就花半个小时做个简单的示范。

    首先,session其虽然是基于 cookie的,同时只对本次会话来产生效果,(原理很简单,就是字典内保存一个字典,外层字典的key也就是asp_netsessionId是 由.NET自动分配的并保存到只对本次会话有效的cookie中,我们的工作只是负责内部我们需要的字典的内容,并有.NET自动分配一块区域保存起来, 当然这个是有一定的时效性的,模拟代码可以看看资料,或者反编译下看看,很简单,这里就不说了)但是有时候我们就会发现默认的session存储方式,可 能造成数据的丢失,虽然他的存储类型是object,但是我们要是存储大量的数据就经常出现数据的丢失。

    下面我介绍两种人人都知道,我也刚知道的配置手段。这两种都是进程外的session机制,可以在IIS或ASP.NET服务意外关闭时继续保持状态.

1.使用aspnet_state.exe

步骤:对于win7不用找,直接打开服务,其一般是已经注册了的。

开始---运行---services.msc 找到

然后打开它,之后我们在web.config内配置Session状态

 
1 
 

 42424是默认端口号(可以修改),同时默认的也是本机访问,要是需要可以在注册表配置,以满足远程服务器的。

然后AllowRemoteConnection值修改为1,0代表本机。之后字需要修改web.config中的IP即可。

现在我们来测试一下效果:

我前面的就不在演示了,这里演示一下,获取session后关闭了服务器,之后再打开,我就可以看到

多次刷新session任然保持存在。

2.使用SQLServer保存

微软提供了2中保存方式(附带创建脚本)

临时储存区:InstallSqlState.sql & UninstallSqlState.sql

永久储存区:InstallPersistSqlState.sql & UninstallPersistSqlState.sql

步骤:我们在.NET安装目录中打开,出现

之后配置一下web.config,

 

<sessionState mode=
"SQLServer"
sqlConnectionString=
"...."
></sessionState>

 

 我们打开SSMS.

运行我们上面官方提供的脚本,这里拿出一个临时储存区的脚本运行

临时脚本

 

虽然会报错,但是不用管,没什么影响,之后会出现一个数据库

 

怎么测试就不说了,都是一样的,还有就是永久存储区的建立都是一样的, 只是内部会保存具体的信息,同时我们可以配合SQL代理

 作业来自动删除失效的session对象.

这里不同进程间的通讯涉及到序列化问题,这里就不说了,里面有就很容易看出来。

好了,今天到此结束,休息一会去了。

转载于:https://www.cnblogs.com/soundcode/archive/2012/05/15/2500880.html

你可能感兴趣的文章
Linux crontab 命令格式与详细例子
查看>>
百度地图Api进阶教程-地图鼠标左右键操作实例和鼠标样式6.html
查看>>
游标使用
查看>>
LLBL Gen Pro 设计器使用指南
查看>>
SetCapture() & ReleaseCapture() 捕获窗口外的【松开左键事件】: WM_LBUTTONUP
查看>>
Android 设置界面的圆角选项
查看>>
百度地图api服务端根据经纬度得到地址
查看>>
根据xml生成相应的对象类
查看>>
Android StageFrightMediaScanner源码解析
查看>>
八叉树
查看>>
Git 远程仓库
查看>>
javascript的发展及个人笔记
查看>>
全选,反全选,反选,获取选中的值,根据子选择控制全选按钮
查看>>
[CF#250 Div.2 D]The Child and Zoo(并查集)
查看>>
博客园博客插入公式
查看>>
hdu 1028 Ignatius and the Princess III(母函数入门+模板)
查看>>
Ubuntu下配置安装telnet server
查看>>
Codeforces 235 E Number Challenge
查看>>
ubuntu 常见命令整理
查看>>
EJBCA安装教程+postgresql+wildfly10
查看>>