前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >探索ASP.NET MVC5系列之~~~5.Session篇(进程外Session)

探索ASP.NET MVC5系列之~~~5.Session篇(进程外Session)

作者头像
逸鹏
发布2018-04-11 14:02:39
6490
发布2018-04-11 14:02:39
举报
文章被收录于专栏:逸鹏说道

其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正)

汇总:http://www.cnblogs.com/dunitian/p/4822808.html#mvc

本章Demohttps://github.com/dunitian/LoTCodeBase/blob/master/NetCode/6.网页基础/BMVC5/MVC5Base/Controllers/SessionController.cs

方法有很多,今天主要说不改代码的那两种(状态服务器+数据库)后面在说运维的时候会介绍Memcache的方案 正常的登录: 登录视图:

管理页面视图:

控制器:

页面效果:

登录成功:

先说第一种,状态服务器:(其实真的来台状态服务器到不如来台Memcache服务器了,结合Cookies完全可以替代Session) 先去状态服务器里面启动一下State服务,并设置为自动启动 (你只是开发用就不需要设置自启动了)

然后把注册表修改一下:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection AllowRemoteConnection ,0仅能本机使用,1可以供其他机器使用.

最后一步:吧aspnet_state添加到安全防火墙允许列表里面:

刷新一下即可:

这时候你可以干一件事情===》你把你网站重启看看Session还在不在~~~(答案是:) 如果遇到异常就看这篇文章:http://www.cnblogs.com/dunitian/p/6131270.html 我记得有状态服务之类的开源项目的,感兴趣的可以去Github搜索看看 ------------------------------------------------------------------------------------------------------------------ 现在说一下数据库充当状态服务器的方法: 第一步注册一下,这个数据库可以是项目数据库,也可以是单独的数据库

如果没有SessionDB数据库,则会自动创建一个名为SessionDB的数据库

数据库添加的表和存储过程

自动生成的job负责删除过期Session的记录值

第二步,配置文件配置一下:

登录看看:

数据库里面有了对应的记录

过期后就需要重新登录了,可能有人会好奇,为啥我上图的过期时间这么长?(⊙o⊙)…额,这个滑动时间是可以自己设置(单位:分钟)==》<sessionState timeout="20"></sessionState>

例如:

重新登录一下:

过期后数据库里面的记录会被自动删掉的

妈妈再也不用担心进程外Session的问题了~

参考链接:https://msdn.microsoft.com/zh-cn/library/h6bb9cz9(v=vs.110).aspx

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我为Net狂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档