2010-11-09 19 views
16

Reading Guru-Gu's blog post about ASP.NET MVC3 hitting RC, ông nói: -Một số kịch bản của việc có một Session-less Controller trong ASP.NET MVC3 là gì?

phiên-less Hỗ trợ điều khiển

Bây giờ bạn có thể cho biết bạn muốn có một bộ điều khiển lớp sử dụng phiên bang - và nếu như vậy cho dù bạn muốn nó là đọc/ghi hoặc readonly.read/write hoặc chỉ đọc.

Ai đó có thể giải thích ai đó có thể muốn có bộ điều khiển ít phiên hơn? hoặc một bộ điều khiển chỉ đọc?

Tôi đã luôn tạo một separate IIS website which I use to handle all static images/content and then have this same website have session state turned off ... do đó không có cookie nào được gửi qua dây. Đây có phải là một kịch bản tương tự không?

Trả lời

25

Gu đã nhận xét về điều này. Trích dẫn:

Các ghi chú phát hành bao gồm hơn này (bạn có thể tải chúng từ liên kết tải xuống ở trên). Trạng thái phiên là được thiết kế sao cho chỉ một yêu cầu từ một người dùng/phiên cụ thể xảy ra tại thời gian . Vì vậy, nếu bạn có một trang có nhiều cuộc gọi lại AJAX xảy ra tại sau khi chúng sẽ được xử lý theo kiểu nối tiếp trên máy chủ. Đi phiên giảm giá có nghĩa là họ sẽ thực thi song song.

Đây là trường hợp được biết đến trong ASP.NET nói chung. Đối tượng phiên cho cùng một người dùng không phải là chủ đề an toàn. Điều này có nghĩa rằng nếu cùng một người dùng (cùng một cookie phiên id) gửi nhiều yêu cầu đến một trang sử dụng phiên mà các yêu cầu đó sẽ xếp hàng và sẽ được xử lý theo chuỗi và không song song.

+0

Oh wow. Tôi chưa bao giờ biết điều đó (và tôi đã làm việc với ASP từ ASP cổ điển). Wow. Nhưng ... điều đó có ý nghĩa :) Dữ liệu phiên là quan trọng và do đó sẽ cần phải được 'khóa' tôi giả định, buộc xử lý nối tiếp. Hmm ... Vì vậy, đây sẽ là một ứng cử viên tuyệt vời để làm cho tất cả Ajax ActionMethods Session-less :) –

+4

Tuyệt đối, tất cả các cuộc gọi AJAX nên được thực hiện phiên-ít hơn. Bằng cách này tôi ghét phiên, vì vậy nói chung tôi làm cho toàn bộ ứng dụng của tôi phiên-ít hơn :-) –

+1

Vì vậy, không có gì bạn cần trong phiên ở tất cả? đã đăng nhập người dùng? –