2012-02-03 53 views
6

尽管问题标题看起来有点主观,但我确信没有太多需要讨论的问题。我目前正在一些MVC项目中使用TemData容器。当我阅读MSDN中的文档时,似乎使用TempData创建会话,并且一旦读取我们存储在tempdata中的数据就消失了。我对这个概念没问题,但是今天早上让我烦恼的事情是,当您在Web Farm环境中托管应用程序时它的行为如何。MVC 3 tempdata容器缺点

如果一个GET请求传递给服务器1,它创建了一个TempData的和后续的GET/POST请求被发送到服务器2

我可能是完全错误的这一假设,但我只需要澄清在这东西。

任何输入将深受赞赏...

干杯!

回答

2

在做了一些研究之后,如果您在应用程序中使用会话变量,我在我的问题中发布的场景是不可避免的。我们可以做的最好的事情是减少我们可以存储在会话中的数据量,除此之外,如果我们仍然需要在webfarm/multi服务器环境中使用会话,那么可以进行一些配置更改。以下是关于如何管理会话存储的非常有用的文章。

ASP.NET Session how to FAQs

0

是的,默认情况下,ASP.NET MVC存储会话中的TempData。如果会话处于inproc(默认)状态,并且您在Web场中,那么您可能无法获得下一个请求的正确会话数据。如果您使用的是Web表单,那么使用其他会话存储方法,如状态服务器或sql server。