2012-02-03 28 views
6

Aunque el título de la pregunta parece un poco subjetivo, estoy seguro de que no hay mucho que discutir. Actualmente estoy trabajando en un proyecto de MVC donde estoy usando el contenedor TemData en algunas áreas. Cuando leo la documentación en MSDN, parece que usar TempData crea una sesión y que una vez que se leen, los datos que almacenamos en tempdata desaparecen. Estoy de acuerdo con este concepto, sin embargo, lo que me molestó esta mañana es cómo se comporta cuando aloja su aplicación en un entorno Web Farm.desventajas del contenedor de temperatura MVC 3

¿Qué pasa si una petición GET se pasa al servidor 1, que crea un TempData y la solicitud GET/POST posterior se envía al SERVIDOR 2.

podría estar completamente equivocado con esta suposición, pero sólo necesito una aclaración en este thinggy.

Cualquier entrada será apreciado profundamente ...

Salud!

Respuesta

2

Después de investigar un poco, el escenario que he publicado en mi pregunta es inevitable si utiliza variables de sesión en sus aplicaciones. Lo mejor que podemos hacer es reducir la cantidad de datos que podríamos almacenar en una sesión, además de esto, si todavía necesitamos usar sesiones en un entorno de webfarm/multi servidor, hay algunos cambios de configuración que uno puede hacer. Aquí hay un artículo muy útil sobre cómo se puede administrar el almacenamiento de la sesión.

ASP.NET Session how to FAQs

0

Sí, de forma predeterminada ASP.NET MVC almacena TempData en sesión. Si la sesión es inproc (predeterminada) y está en la granja de servidores web, es posible que no obtenga los datos correctos de la sesión para la próxima solicitud. Si está en forma de web, utilice otro método de almacenamiento de sesión como servidor de estado o servidor sql.