Asp.net mvc 每个控制器/操作方法启用/禁用会话状态

Asp.net mvc 每个控制器/操作方法启用/禁用会话状态,asp.net-mvc,caching,session-state,zeus,Asp.net Mvc,Caching,Session State,Zeus,我们正在构建一个ASP.NET MVC应用程序,该应用程序将部署在支持缓存等功能的硬件负载平衡器后面 我们的建议是手动定义负载平衡器应该缓存哪些URL模式。这对我们来说将是一个相当简单的过程,因为我们有相对静态的“目录”页面,然后是非静态的“订单”页面 必须避免在缓存页面上使用会话状态,因为整个响应由负载平衡器缓存-这包括发送的任何cookie 理想情况下,有一个属性可以应用于允许选择性使用会话状态的控制器或操作方法,但似乎没有。我意识到,如果使用离开“会话区域”,这样的方法会导致会话丢失,这很

我们正在构建一个ASP.NET MVC应用程序,该应用程序将部署在支持缓存等功能的硬件负载平衡器后面

我们的建议是手动定义负载平衡器应该缓存哪些URL模式。这对我们来说将是一个相当简单的过程,因为我们有相对静态的“目录”页面,然后是非静态的“订单”页面

必须避免在缓存页面上使用会话状态,因为整个响应由负载平衡器缓存-这包括发送的任何cookie

理想情况下,有一个属性可以应用于允许选择性使用会话状态的控制器或操作方法,但似乎没有。我意识到,如果使用离开“会话区域”,这样的方法会导致会话丢失,这很好

除了重新实现整个ASP.NET MVC HTTP控制器。。。有什么建议吗


提前感谢。

这已包含在MVC 2期货中。有关更多信息,请参阅。

现在将其从Futures移至MVC3。有一个
ControllerSessionState
属性(显然在MVC3的最终版本中将被命名为
SessionState
),可以应用于控制器,如下所示:

[SessionState(SessionStateBehavior.Disabled)]
public class MyController : Controller
{
 ...
(但在RC版本中,必须使用
ControllerSessionState