2010-01-08 26 views
7

Làm cách nào để bạn làm việc xung quanh thực tế rằng các phiên bị giảm mỗi lần bạn triển khai một số tệp mã nhất định vào một trang web ASP.NET? Đôi khi, chúng tôi cần triển khai bản sửa lỗi quan trọng vào giữa ngày nhưng không muốn khởi động tất cả người dùng của chúng tôi.Triển khai ASP.NET: Làm cách nào để tránh mất trạng thái phiên khi cập nhật mã?

+0

Tôi thà có một thông báo thời gian ngừng hoạt động hệ thống được triển khai và giúp người dùng dọn dẹp sạch sẽ hơn với một bản vá nóng có liên quan đến phiên – curtisk

Trả lời

7

Theo mặc định Phiên được lưu trữ InProc. Bạn nên chọn một out-of-process option.

Có lẽ chỉ là một StateServer là đủ trong kịch bản của bạn

+4

Sử dụng StateServer sẽ khắc phục sự cố. Hãy lưu ý rằng mọi thứ bạn muốn đưa vào phiên sẽ cần phải được tuần tự hóa khi sử dụng bất kỳ bộ nhớ phiên quá trình nào. – TonyB

1

Một cách sẽ được để có một cân bằng tải máy chủ thiết lập. Bạn có thể hướng tất cả lưu lượng đến máy chủ A, vá Server B và sau đó lặp lại theo cách khác.

Ngoài ra, như trạng thái @Curtisk, tốt hơn để đến giai đoạn mà bạn không cần phải làm "bản vá nóng" thông qua kiểm tra nghiêm ngặt và sau đó tiến hành cúp kế hoạch được quảng cáo trước.

Hy vọng điều này sẽ hữu ích.

1

Lý do tại sao điều này xảy ra là triển khai mã mới làm cho hồ bơi ứng dụng được tái chế. Sau đó bạn mất tất cả mọi thứ bạn có trong bộ nhớ.

Cách để giải quyết vấn đề này là không lưu bất cứ thứ gì vào bộ nhớ.

Mức độ khó này phụ thuộc vào kiến ​​trúc của bạn.

Một giải pháp có thể là lưu thông tin phiên của bạn trong SQL Server, sử dụng trạng thái quá trình. Lưu ý không sử dụng máy chủ trạng thái bộ nhớ, như thể nhóm ứng dụng được tái chế, bạn sẽ mất điều này.

Các vấn đề liên quan