¿Es posible construir un modo de estado de sesión totalmente personalizado en lugar de utilizar Inproc o SQLServer?ASP.Net Custom Session State Management
Respuesta
Sí, por supuesto, se podría escribir un custom session state store provider mediante la implementación de SessionStateStoreProviderBase clase y luego ajustar el modo de estado de sesión a esta implementación personalizada en web.config:
<sessionState
mode="Custom"
customProvider="SomeCustomProviderName">
<providers>
<add name="SomeCustomProviderName"
type="YourNamespace.CustomSessionStateStore"
connectionStringName="SomeConnectionString" />
</providers>
</sessionState>
Creo que es posible hacerlo de la manera le gustaría, pero el uso de bases de datos, en general, para la administración de estado de sesión (mientras tiene algunos inconvenientes) puede tener una gran cantidad de beneficios, lee mi blog para una sencilla aplicación desde cero http://techblog.alkumait.net/index.php/2011/12/net-custom-session-implementation/
Creo que este es un enlace valioso para las personas que quiere tener ac aplicación ustom sesión en la base de datos: http://msdn.microsoft.com/en-us/library/ms178589.aspx
Esta es una pregunta más antigua relacionada con algo que estoy haciendo en el aquí y ahora de la OCT 2014.
Básicamente, las respuestas originales siguen siendo correctos, en el que pueda construya su propio sistema de gestión de estado de sesión OutProc personalizado, pero con Microsoft ahora mucho más involucrado con el código abierto, podría simplemente andar a lo largo de MSOpenTech and download the Redis port for Windows, que también es compatible con Windows Azure.
Redis es un sistema de gestión de estado de sesión OutProc que se puede ejecutar en una ventana de proceso/consola independiente o como servicio de Windows para la sesión de placa de fondo/almacén de valores de clave.
MSOpenTech:
Redis es una de código abierto muy popular, en red, en memoria, valor clave almacén de datos. Es conocido por su alto rendimiento, flexibilidad, un amplio conjunto de estructuras de datos y una API sencilla y directa. MS Open Tech tiene estado trabajando con la comunidad de Redis para construir un puerto Windows de Redis listo para la producción , que incluye soporte de 64 bits, un instalador para Windows Azure, soporte NuGet y mucho más.
Redis.io Intro:
Redis es un código abierto, con licencia BSD, avanzado caché de clave-valor y tienda. A menudo se refiere como un servidor de estructura de datos desde las teclas pueden contener cadenas, hash, listas, juegos, juegos, mapas de bits y hyperloglogs
Se puede utilizar para almacenar el estado de sesión de ASP.NET MVC ordenados, WebAPi y SignalR, que es muy útil en un entorno de granja web.
Instalar Paquete Microsoft.Web.RedisSessionStateProvider
Se configura fácilmente a través de web.config y cuando digo fácil, me refiero fácil.
<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>
De hecho, al principio pensé que debía hacerlo mal.;) Pero eso es todo lo que se necesita para pasar el estado de la sesión a Redis.
Es un puerto de alto rendimiento, muy parecido a la versión original de POSIX.
Lo estamos utilizando para una aplicación de servicios financieros que se encuentra con grandes cargas de empujes y tirones en tiempo real a través de Signalr, que también "apoya" a Redis para mantener el estado de la sesión del concentrador.
Por lo tanto, aunque todavía puede hacer las respuestas aceptadas, unos 3 años y medio más tarde consideraría algunas de estas alternativas a la experiencia de gestión de sesiones ASP.NET predeterminada que están disponibles, de forma gratuita, a través de OSS.
https://github.com/MSOpenTech/redis
http://www.codeproject.com/Articles/636730/Distributed-Caching-using-Redis
- 1. ASP.NET State Management en situaciones apropiadas
- 2. ¿Almacenar información de sesión en ASP.Net Cookie o Session State?
- 3. SQLServer vs StateServer para ASP.NET Session State Performance
- 4. WebApp Session Management usando Ehcache
- 5. Spring tutorial en Session Management
- 6. jersey security and session management
- 7. NHibernate Win Forms Session Management
- 8. Visual State Manager en Custom Control
- 9. ASP.Net Session
- 10. Pros y contras de usar ASP.NET Session State Server (en lugar de InProc)?
- 11. Nuevos parámetros de caché para AppFabric Cache al almacenar ASP.NET Session State
- 12. ASP.NET Session y LINQ
- 13. ASP.NET MVC Session Estado
- 14. ASP.NET Session Timeout Testing
- 15. ASP.NET Generic Handlers & Session
- 16. ASP.NET Session Performance
- 17. Asp.net session variable
- 18. Mantener ASP.NET Session Open/Alive
- 19. End Session en ASP.net MVC
- 20. FOSS ASP.Net Session Replication Solution?
- 21. ¿Memcached es intercambiable con ASP.NET State Server?
- 22. ASP.NET MVC Session vs Global vs Cache
- 23. ASP.NET MVC 2 - HTML.EditorFor() y Custom EditorTemplates
- 24. Custom MVC AuthorizeAttribute para ASP.NET Web API
- 25. ASP.NET MVC 3 Custom RouteBase y OutputCache
- 26. Asp.Net MVC 2 LabelFor Custom Text
- 27. Ember.js + Handlebars custom helper
- 28. Restaurar Emacs Session/Desktop
- 29. Asp.Net Session es nulo en el archivo ashx
- 30. ASP.NET 'Session.Remove (clave)' v/s 'Session (clave) = nada'
FYI: Casi todo lo que desea configurar en .NET se basa en el "modelo de proveedor", que significa que hay todo tipo de cosas que se pueden escribir los proveedores de. El único inconveniente es que la aplicación.config/web.config a veces puede ponerse un poco peluda como resultado. ;-) – BrainSlugs83