我们正在构建一个 ASP.NET MVC 应用程序,该应用程序将部署在支持缓存等的硬件负载平衡器后面。
我们的建议是手动定义负载均衡器应该缓存哪些 URL 模式。这对我们来说将是一个相当简单的过程,因为我们有相对静态的“目录”页面,然后是非静态的“订购”页面。
必须避免在缓存页面上使用 session 状态,因为整个响应由负载均衡器缓存 - 这包括发送的任何 cookie。
理想情况下,会有一个属性可以应用于 Controller 或操作方法,允许选择性地使用 session 状态,但似乎没有。我意识到,如果使用离开“ session 区”,这样的方法会导致 session 丢失——这很好。
除了重新实现整个 ASP.NET MVC HTTP Controller 之外……有什么建议吗?
提前致谢。
最佳答案
这现在从 Futures 转移到 MVC3 中。有一个ControllerSessionState
属性(显然将被命名为 SessionState
用于 MVC3 的最终版本),可以应用于 Controller ,如下所示:
[SessionState(SessionStateBehavior.Disabled)]
public class MyController : Controller
{
...
(但在 RC 版本中,您必须使用
ControllerSessionState
关于asp.net-mvc - 启用/禁用每个 Controller /操作方法的 session 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2250940/