2012-02-03 6 views
6

Mặc dù tiêu đề câu hỏi xuất hiện một chút chủ quan Tôi chắc chắn không có nhiều điều để thảo luận. Tôi hiện đang làm việc trên một dự án MVC nơi tôi đang sử dụng TemData container trong một số lĩnh vực. Khi tôi đọc tài liệu trong MSDN, nó xuất hiện rằng bằng cách sử dụng TempData tạo ra một phiên và rằng một khi đọc dữ liệu chúng tôi lưu trữ trong tempdata đã biến mất. Tôi đồng ý với khái niệm này, tuy nhiên điều khiến tôi phải lo lắng sáng nay là nó hoạt động như thế nào khi bạn lưu trữ ứng dụng của mình trong môi trường Web Farm.MVC 3 tempdata bất lợi container

gì nếu một yêu cầu GET được truyền SERVER 1, mà tạo ra một TempData và yêu cầu GET/POST tiếp theo sẽ được gửi đến MÁY CHỦ 2.

tôi có thể hoàn toàn sai với giả định này nhưng tôi chỉ cần làm rõ về điều này.

Mọi đầu vào sẽ được đánh giá cao ...

Chúc mừng!

Trả lời

2

Sau khi thực hiện một số nghiên cứu, kịch bản mà tôi đã đăng trong câu hỏi của tôi là không thể tránh khỏi nếu bạn sử dụng các biến phiên trong ứng dụng của mình. Điều tốt nhất chúng ta có thể làm là giảm lượng dữ liệu mà chúng ta có thể lưu trữ trong một phiên, ngoài điều này nếu chúng ta vẫn cần sử dụng các phiên trong môi trường webfarm/multi server, có một số thay đổi cấu hình mà người ta có thể thực hiện. Đây là một bài viết rất hữu ích về cách lưu trữ phiên có thể được quản lý.

ASP.NET Session how to FAQs

0

Có, theo mặc định ASP.NET MVC lưu trữ TempData trong phiên. Nếu phiên là inproc (mặc định) và bạn đang ở trong trang trại thì bạn có thể không nhận được dữ liệu phiên chính xác cho yêu cầu tiếp theo. Nếu bạn đang ở dạng web sau đó sử dụng phương pháp lưu trữ phiên khác như máy chủ trạng thái hoặc máy chủ sql.