2010-02-19 3 views
5

Tôi đang làm việc trên ứng dụng web ASP.NET MVC và tôi đã tạo mô-đun xác thực của riêng mình, dựa trên phiên (không có cookie). Vấn đề là: Khi tôi xây dựng lại ứng dụng của mình, tôi tự động được ghi lại (phiên trống).Phiên trống trong ASP.NET/IIS sau khi xây dựng lại

Thông thường đây không phải là một vấn đề lớn vì ứng dụng của tôi không được xây dựng lại 'tự động' trong môi trường sản xuất. Nhưng tôi cũng đã tạo một mô-đun thay đổi các tệp tài nguyên và sau khi sửa đổi một tệp tài nguyên, ứng dụng có vẻ như tự động xây dựng lại.

Vì vậy, câu hỏi thực tế của tôi: Có thể 'giữ' các biến phiên/duy trì trạng thái đăng nhập sau khi xây dựng lại không?

+0

Trong quá trình phát triển, tôi luôn muốn có nó như thế ... lý do: Nếu bạn (hoặc một từ nhóm) thay đổi một mô hình đối tượng được lưu trong phiên, nó sẽ có khả năng gây nổ hoặc thuộc tính bạn sử dụng có thể là một null hoặc một cái gì đó như thế. – cyberzed

Trả lời

6

Bạn sẽ cần sử dụng thứ gì đó không phải là phiên InProc. Bạn sẽ cần phải xem xét sử dụng ASP.net State Server hoặc máy chủ SQL làm cửa hàng sao lưu cho các phiên của bạn. Đây có thể là một chút chậm hơn, nhưng có khả năng đàn hồi hơn.

+1

Cảm ơn bạn. Tìm thấy một số thông tin khác về nó: http://support.microsoft.com/kb/317604 –

+0

Liên kết này đã giúp tôi hiểu: http://www.brianstevenson.com/blog/aspstate-concurrently-running-for-net-1011 -và-net-20 / –

1

Khi ghi chú Paddy, bạn sẽ cần sử dụng thứ gì đó không phải là phiên InProc. Truy cập MSDN để xem cách thay đổi giải pháp dựa trên SQL hoặc Windows Service.

Thực ra tôi nghĩ rằng thực hành tốt là luôn sử dụng các phiên không tham gia. Hiệu suất đạt được khi sử dụng ASP.NET State Service trên cùng một hộp là tối thiểu và bạn sẽ không gặp bất kỳ sự ngạc nhiên khó chịu nào nếu bạn quyết định thay đổi cơ chế Session State tại một số điểm trong tương lai (trong khi đang chạy InProc) Session, nhưng một khi bạn sử dụng trạng thái phiên out-of-proc, dữ liệu phải được serializable, mà có thể đến như là một bất ngờ khó chịu tại một thời điểm khi bất ngờ không được chào đón).