6

虽然问题标题看起来有点主观,但我相信没有太多要讨论的。我目前正在开发一个 MVC 项目,我在某些领域使用 TemData 容器。当我阅读 MSDN 中的文档时,似乎使用 TempData 创建了一个会话,并且一旦读取我们存储在 tempdata 中的数据就消失了。我对这个概念很满意,但是今天早上一直困扰我的事情是,当您在 Web Farm 环境中托管您的应用程序时,它的表现如何。

如果将 GET 请求传递给 SERVER 1,这会创建一个 TempData 并将随后的 GET/POST 请求发送到 SERVER 2。

我可能对这个假设完全错误,但我只需要澄清这个问题。

任何输入将不胜感激......

干杯!

4

2 回答 2

2

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

ASP.NET Session 如何进行常见问题解答

于 2012-03-29T21:22:56.097 回答
0

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

于 2012-03-07T20:01:03.273 回答