3

鉴于项目的性质,我需要在 TempData 中存储一个简单的对象(具有 3/4 属性)。这是一次读取一次写入一次,这很好,但确实需要在几个核心方法/操作之间传递。

问题是:我怎样才能使它与网络农场一起工作?需要配置哪些东西以允许 TempData 与 webfarm 一起工作?

使用 MVC 4 剃刀。

谢谢你

4

2 回答 2

1

默认情况下,TempData 是使用 Sessions 实现的,因此这在场上会是个问题。

最简单的解决方案是使用CookieTempDataProvider

于 2013-09-05T16:56:27.983 回答
1

TempData 存储在会话中。这意味着在网络场中使用它的唯一可靠方法是拥有某种状态服务器。

更改所有服务器上的 ApplicationId (MachineKey) 以使它们匹配对会话没有任何作用。这仅意味着每个服务器都可以解码其他服务器留下的 cookie。会话存在于内存中的单个 Web 服务器上。

如果您的负载均衡器上没有粘性会话,则在服务器 1 上填充 TempData 的请求可能会重定向到与其自身不同的服务器,并且不会填充 TempData(或者不会填充刚刚放入的相同数据)服务器 1)。

于 2014-08-27T16:20:17.447 回答