是否可以構建完全自定義的會話狀態模式而不是使用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