Giống như tất cả mọi thứ trong cuộc sống phát triển của, sử dụng phiên là một trade-off, và một IMHO nó thường là một xấu.
Trạng thái phiên không chỉ gây tải trên máy chủ có xu hướng phát triển và tạo rào cản khả năng mở rộng (cả hai vấn đề có thể được giải quyết một phần bằng cách lưu biến phiên với máy chủ trạng thái hoặc máy chủ sql). mọi người đều nhận thức được: Nó duy trì một khóa đọc-đọc trên phiên. (http://msdn.microsoft.com/en-us/library/ms178581(v=vs.100).aspx)
Điều này có nghĩa là theo mặc định, không thể yêu cầu đồng thời hai người dùng. Hành vi này là asp.net liên quan (không chỉ asp.net MVC), tuy nhiên kể từ khi asp.net MVC thực sự khuyến khích bạn đi xuống đường ajax, bạn sẽ thấy vấn đề này thường xuyên hơn nhiều). Bạn có thể bỏ qua những vấn đề này bằng cách sử dụng thông minh readonly session state or selectively disabling it, nhưng từ kinh nghiệm của tôi tạo ra chi phí phát triển, vì thuộc tính đó chỉ có thể được khai báo trên phạm vi lớp, chứ không phải cho các phương thức hành động cụ thể. thường sẽ nằm lại với nhau.
Tóm lại, danh dự của bạn, hành vi mặc định trạng thái phiên asp.net là có vấn đề. Tránh sử dụng nó nếu có thể.
Ive đã bỏ phiếu để đóng này vì nó sẽ thu hút cuộc tranh luận về sự ủng hộ và chống đối. Nó không phù hợp cho QA. Điều đó nói rằng, có một số câu hỏi tương tự trên SO: http://stackoverflow.com/questions/10181629/why-session-is-a-disaster-in-asp-net-mvc-application và http://stackoverflow.com/câu hỏi/6165241/asp-net-mvc-session – Jamiec