是否可以构建完全自定义的会话状态模式而不是使用Inproc或SQLServer?ASP.Net自定义会话状态管理
回答
是的,当然,你可以写在web.config中一个custom session state store provider通过实施SessionStateStoreProviderBase类,然后设置会话状态模式这个定制的实现:
<sessionState
mode="Custom"
customProvider="SomeCustomProviderName">
<providers>
<add name="SomeCustomProviderName"
type="YourNamespace.CustomSessionStateStore"
connectionStringName="SomeConnectionString" />
</providers>
</sessionState>
我认为这是可能做到这一点的方式你喜欢的,但使用的数据库一般的会话状态管理(虽然有一些缺点)可以有很多的好处,检查我的博客一个简单的从划痕实施 http://techblog.alkumait.net/index.php/2011/12/net-custom-session-implementation/
我认为这是一个宝贵的链接的人谁想要交流在数据库ustom会话实现:http://msdn.microsoft.com/en-us/library/ms178589.aspx
这是与一些旧的问题,我做在这里,现在十月的2014年
基本上,最初的答案仍然是正确的,因为你可以构建您自己的定制OutProc会话状态管理系统,但微软现在更加关注开源,您可以轻松前往MSOpenTech and download the Redis port for Windows,这也受到Windows Azure的支持。
Redis是一个OutProc会话状态管理系统,可以在独立的进程/控制台窗口中运行,也可以作为用于背板会话/键值存储的Windows服务运行。
MSOpenTech:
Redis是一个非常流行的开源,网络,内存,键值 数据存储。它以高性能,灵活性,数据结构丰富的集合以及简单直接的API而闻名。微软开放技术有 一直与Redis社区合作建立一个生产就绪 Redis的Windows端口,包括64位支持,Windows Azure的安装程序,NuGet支持等等。
Redis.io简介:
的Redis是一个开源的,BSD授权的,先进的键值缓存和 店。因为它可以 包含字符串,散列,列表,集合,排序集合,位图和 hyperloglogs
你可以用它来存储会话状态的ASP.NET MVC键通常被称为数据结构服务器, WebAPi和SignalR在Web农场环境中非常方便。
安装,包装Microsoft.Web.RedisSessionStateProvider
它很容易通过的web.config配置,当我说的容易,我的意思是容易的。
<system.web>
<sessionState mode="Custom" customProvider="MySessionStateStore">
<providers>
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="127.0.0.1" port="6379" accessKey="" ssl="false" />
</providers>
</sessionState>
</system.web>
这么容易,其实我起初以为我一定是做错了。;) 但这只是将会话状态转移到Redis所需的全部资源。
它的高性能端口,非常接近原来的POSIX版本。
我们正在使用它作为金融服务应用程序,它遇到通过Signalr进行实时推送和高负载的高负载,如上所述还支持Redis以维护中心会话状态。
因此,尽管您仍然可以接受答案,但大约3年半之后,我会考虑通过OSS免费提供的默认ASP.NET会话管理体验的一些替代方案。
https://github.com/MSOpenTech/redis
http://www.codeproject.com/Articles/636730/Distributed-Caching-using-Redis
- 1. 自定义会话状态管理
- 2. 使用DynamoDB自定义会话状态管理
- 3. 会话状态。如何使用自定义模式管理会话?
- 4. 管理会话状态
- 5. 状态管理(会话)
- 6. Magento1.6管理中的自定义状态
- 7. PHP自定义会话管理类
- 8. ASP.NET会话状态
- 9. asp.net会话状态
- 10. ASP.Net会话状态
- 11. 使用html :: mason管理会话状态
- 12. WCF管理会话状态信息
- 13. ASP.NET 3.5无状态会话管理和连接池?
- 14. ASP.Net MVC会话状态管理 - 跨站点访问
- 15. 关于会话状态管理(ASP.NET)内部工作的文章
- 16. ASP.NET会话状态问题
- 17. ASP.NET MVC会话状态
- 18. ASP.NET在Proc会话状态
- 19. 监视ASP.NET会话状态
- 20. ASP.Net会话状态问题
- 21. ASP.NET会话状态迁移
- 22. OpenID Connect会话管理中的会话状态
- 23. ASP.NET MVC状态管理
- 24. asp.net中的状态管理
- 25. ASP.NET自定义会员,会话
- 26. Asp.Net Sql Server会话管理
- 27. asp.net Nhibernate会话管理
- 28. asp.net Nhibernate会话管理
- 29. ASP.NET会话ID管理
- 30. ASP.NET中的会话管理
FYI:你能想到的.NET配置几乎一切是基于“提供者模型”,这意味着,你可以写提供商的东西各类。唯一的缺点是,app.config/web.config有时会因此而变得有点多毛。 ;-) – BrainSlugs83 2012-10-22 14:35:25