ASP.NET:EntityFramework实现Session
ASP.NET默认的InProc模式的Session既浪费内存又在网站重启时存在数据丢失问题,SQLServer模式的Session只支持SQL Server又需要命令行配置。使用EntityFramwork实现Custom既可以利用EntityFramework实现自定义的SessionProvider既可以避免数据丢失又不用捆绑到Sql Server上,还可以采用CodeFirst的自动生成数据库的方式,让我们不再需要命令行配置。
我们可以按照实际情况,对低配置单个网站采用嵌入式数据库,对负载均衡的Session统一使用分布式的Session服务器避免状态丢失,更可以在后期不用修改原有代码,只通过修改web.config方便的添加和切换其他提供了EntityFramework的数据库。
1.定义实体:
实体的代码我通过EntityFramework的插件从数据库反向生成了ASP.NET Session的实体代码,参考github上其他的Session提供程序进行了修改,将2个表合并,依然支持不同Application级别的Session存取。
2.自定义提供程序:
主要的参考三个来源:
(1)MongoDB-ASP.NET-Session-State-Store(https://github.com/AdaTheDev/MongoDB-ASP.NET-Session-State-Store)
(2)SQLiteSessionStateStore(https://github.com/micahlmartin/SQLiteSessionStateStore)
(3)System.Web.SessionState.SqlSessionStateStore(ILSpy)
3.配置web.config
通过切换Provider的connectionStringName属性可以切换不同的数据连接。
4.测试功能:
只是简单的测试了读写。
5.查看结果:
代码已经上传到gitosc:http://git.oschina.net/myshare/EntityFramework.SessionStateStoreProvider
组件已经上传到nuget:https://www.nuget.org/packages/EfSessionStateProvider/
ASP.NET:EntityFramework实现Session的更多相关文章
- ASP.NET中的Session怎么正确使用
Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息.用户在应用程序的页面切换时,Session对象的变量不会被清除. 对于一个Web应用 ...
- ASP.NET里的Session详细解释
Session模型简介 Session是什么呢?简单来说就是服务器给客户端的一个编号.当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站.当每个用户首次与这台WWW服务器建立连 ...
- ASP.NET中的Session怎么正确使用[转]
Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息.用户在应用程序的页面切换时,Session对象的变量不会被清除. 对于一个Web应用 ...
- ASP.NET会话(Session)保存模式--终于知道session为什么丢失了
[原创]ASP.NET会话(Session)保存模式 作者:寒羽枫(cityhunter172) 大家好,已有四个多月没写东东啦.今日抽空就说一下 Session 在 .Net v1.0/v1.1 中 ...
- 【转】asp.net中利用session对象传递、共享数据[session用法]
来自:http://blog.unvs.cn/archives/session-transfer-method.html 下面介绍Asp.net中利用session对象传递.共享数据用法: 1.传递值 ...
- 【译文】漫谈ASP.NET中的Session
最近这两天被一个Web Farm环境下的Session处理问题虐得很痛苦,网上到处找解决方案,在无意中翻看到这篇文章,感觉很不错,顺手查了一下,貌似没有现成的译文,于是一咬牙一跺脚把这篇文章翻译出来了 ...
- Asp.net Mvc 自定义Session (二)
在 Asp.net Mvc 自定义Session (一)中我们把数据缓存工具类写好了,今天在我们在这篇把 剩下的自定义Session写完 首先还请大家跟着我的思路一步步的来实现,既然我们要自定义Ses ...
- asp.net中利用session对象传递、共享数据[session用法]
下面介绍Asp.net中利用session对象传递.共享数据用法: 1.传递值: 首先定义将一个文本值或单独一个值赋予session,如下: session[“name”]=textbox1.text ...
- 实现Asp.net Mvc分布式Session Redis群集
Redis群集实现Asp.net Mvc分布式Session Session的缺点 众所周知Asp.net Session默认存储在IIS中,IIS的重启会导致Session丢失. 如果你的网站使用了 ...
- 转载ASP.NET MVC中Session的处理机制
本文章转载自 http://www.cnblogs.com/darrenji/p/3951065.html ASP.NET MVC中的Session以及处理方式 最近在ASP.NET MVC项目中 ...
随机推荐
- python corrcoef
该函数得到相关系数矩阵. 例子: vc=[1,2,39,0,8] vb=[1,2,38,0,8] print mean(multiply((vc-mean(vc)),(vb-mean(vb))))/( ...
- [unchecked] 对作 为原始类型Hashtable的成员的put(K,V)的调用未经过检查。。。
问题: C:\Users\Administrator\Desktop\java\SoundApplet.java:212: 警告: [unchecked] 对作为原始类型Hashtable的成员的pu ...
- (二)swagger-springmvc
如何入门 1. 我在 http://mvnrepository.com/ 上搜索 swagger-springmvc 2. 我找到一个具体版本 http://mvnrepository.com/art ...
- spring读取数据库的配置信息(url、username、password)时的<bean>PropertyPlaceholderConfigurer的用法
用法1: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w ...
- [Ubuntu Version] 如何在terminal 查看当前 ubuntu的版本号
命令: locate locate /etc/*release/etc/lsb-release/etc/os-release 命令: catcat /etc/os-releaseNAME=" ...
- delphi 安卓程序如何读取外部配置文件
1)编辑一个config.txt文件,填写配置系统. 2)有外部加载文件时,安卓发布需要另行指定文件发布目录位置 比如加载config.txt需要在 首先利用Project->Deploymen ...
- 使用Java web工程建立Maven Web Module工程
1. 前言 之前有一篇关于搭建S2SH的文章中提到建立Maven Web Module工程,有人反馈说这个方面不会.那还是唠叨一下,写篇文章说明一下吧. 建立Maven Web Module的方式有多 ...
- 利用Kettle进行SQLServer与Oracle之间的数据迁移实践
Kettle简介 Kettle(网地址为http://kettle.pentaho.org/)是一款国外开源的ETL工具,纯java编写,可以在Windows.Linux.Unix上运行,数据抽取高效 ...
- SQL分组合并
STUFF ( character_expression , start , length ,character_expression ) select TcodMedInst_GUID,stuff( ...
- webform获取微信用户的授权
这是一个利用webform做出来的简单demo,微信授权,获取微信用户的基本信息.方便以后加深记忆. public partial class Index : System.Web.UI.Page { ...