Asp.net-Mvc

啟用/禁用每個控制器/操作方法的會話狀態

  • February 12, 2010

我們正在建構一個 ASP.NET MVC 應用程序,該應用程序將部署在支持記憶體等的硬體負載平衡器後面。

我們的建議是手動定義負載均衡器應該記憶體哪些 URL 模式。這對我們來說將是一個非常簡單的過程,因為我們有相對靜態的“目錄”頁面,然後是非靜態的“訂購”頁面。

必須避免在記憶體頁面上使用會話狀態,因為整個響應由負載均衡器記憶體 - 這包括發送的任何 cookie。

理想情況下,會有一個屬性可以應用於控制器或操作方法,允許選擇性地使用會話狀態,但似乎沒有。我意識到,如果使用離開“會話區域”,這樣的方法會導致會話失去——這很好。

除了重新實現整個 ASP.NET MVC HTTP 控制器之外……有什麼建議嗎?

提前致謝。

這包含在 MVC 2 期貨中。有關詳細資訊,請參閱<http://blogs.msdn.com/rickandy/archive/2009/12/17/session-less-mvc-controller.aspx>。

這現在從 Futures 轉移到 MVC3 中。有一個ControllerSessionState屬性(顯然會以SessionStateMVC3 的最終版本命名),它可以應用於控制器,如下所示:

[SessionState(SessionStateBehavior.Disabled)]
public class MyController : Controller
{
...

(但在 RC 版本中,您必須使用ControllerSessionState

引用自:https://stackoverflow.com/questions/2250940