2010-02-12 12 views
17

Chúng tôi đang xây dựng một ứng dụng ASP.NET MVC sẽ được triển khai phía sau bộ cân bằng tải phần cứng hỗ trợ, trong số những thứ khác, lưu vào bộ nhớ đệm.Bật/tắt trạng thái phiên trên mỗi bộ điều khiển/hành động

Đề xuất của chúng tôi là xác định thủ công các mẫu URL nào nên được lưu vào bộ nhớ cache bởi trình cân bằng tải. Đây sẽ là một quá trình khá dễ dàng đối với chúng tôi khi chúng tôi có các trang 'danh mục' tương đối tĩnh, sau đó các trang 'đặt hàng' không phải là trang.

Phải tránh sử dụng trạng thái phiên trên các trang được lưu trong bộ nhớ cache vì toàn bộ phản hồi được lưu vào bộ cân bằng tải - bao gồm mọi cookie được gửi.

Lý tưởng nhất là sẽ có một thuộc tính có thể được áp dụng cho bộ điều khiển hoặc phương pháp hành động cho phép sử dụng có chọn lọc trạng thái phiên, nhưng dường như không phải là một. Tôi nhận ra rằng một cách tiếp cận như thế này sẽ dẫn đến các phiên bị mất nếu việc sử dụng rời khỏi 'vùng phiên' - điều đó là tốt.

Ngoài việc triển khai lại toàn bộ bộ điều khiển ASP.NET MVC HTTP ... bất kỳ đề xuất nào?

Xin cảm ơn trước.

+0

http://stackoverflow.com/questions/1464203/disable-session-state-per-request-in-asp-net-mvc –

Trả lời

48

Điều này hiện được chuyển từ Tương lai sang MVC3. Có một thuộc tính ControllerSessionState (rõ ràng sẽ được đặt tên SessionState cho việc phát hành cuối cùng của MVC3), có thể được áp dụng đối với một bộ điều khiển, một cái gì đó như thế này:

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

(Nhưng trong phiên bản RC, bạn phải sử dụng ControllerSessionState