2012-08-28 127 views
2

我需要使用TempData将请求重定向到另一个具有特定请求的操作。我知道TempData使用会话来存储数据。MVC RedirectToAction和LoadBalancing

如果请求到达server01,并且请求被重定向到另一个动作,请求将保留在server01上还是可能会转到server02?如果它到达server02,我将无法正确处理TempData。

有没有办法让server01上的请求保持特定的重定向?或者我必须创建一个cookie来指向数据库上的数据,并检查请求是否存在cookie?

问候

注:负载均衡是由设备处理出来,其中的服务器所在的网络和服务器不在一个IIS Web场。

回答

1

有没有办法让server01上的请求保持特定的重定向?

您需要使用StateServerSQLServerstore your sessions而不是InProc。另一种可能性是将负载均衡器配置为始终将来自同一IP的请求发送到同一台服务器。

当然,这些都是非常糟糕的想法。实现这一目标的最好方法是简单地摆脱会话和TempData,并以无状态,RESTFul方式设计应用程序。我最喜欢的sessionState模式如下:

<sessionState mode="Off" />