2009-04-08 46 views
8

Tôi đang làm việc một ứng dụng web hiện tại cho một khách hàng và tôi đang gặp một số rắc rối với biến phiên biến mất trên tôi. Tôi sẽ cố gắng và thiết lập một mô tả tốt về kịch bản tốt nhất có thể. Nó không xảy ra trên bất kỳ trang nào khác với trang tôi đã tạo để cho phép người dùng sửa đổi các chuỗi được lưu trữ trong tệp tài nguyên.ASP.NET - Biến mất biến phiên

Nó hiển thị WHEN: Người dùng điều hướng đến trang, chọn tệp tài nguyên từ danh sách và nhấp vào chỉnh sửa lần đầu tiên. Trang tải tệp vào lưới và cho phép họ chỉnh sửa. Tại thời điểm này, các biến phiên đang được lưu lại một cách chính xác khi tất cả các postback. NGAY BÂY GIỜ, họ nhấp vào nút lưu ở dưới cùng để ghi tệp tài nguyên vào hệ thống tệp (App_LocalResources). Họ chọn một tệp mới từ danh sách, cố gắng tải nó và lần này các biến phiên được xóa và chuyển hướng chúng đến trang đăng nhập vì nó không biết thông tin người dùng đó.

chi tiết Additinal:

Nó chỉ xảy ra khi họ bấm vào một nút lưu nó sẽ gọi thủ tục của tôi để ghi vào tập tin tài nguyên.

Tôi không thực sự thực hiện nhiều chức năng lưu bên cạnh việc ghi vào một tệp tài nguyên có trong App_LocalResources và vì một số lý do, điều này xóa các biến phiên của tôi.

Biến phiên được đề cập là có thông tin người dùng mà tôi cố gắng lấy làm điều đầu tiên trong phương thức page_load.

Thông tin phiên này cũng được thực thi sau mỗi lần đăng lại thông qua phương thức page_load.

Cảm ơn mọi người, tôi hy vọng tôi đã mô tả điều này đủ tốt.

Trả lời

10

IIS sẽ đặt lại ứng dụng khi bạn thay đổi tệp trong thư mục được liên kết với ứng dụng. Đặt lại ứng dụng sẽ khiến bạn mất các phiên nhớ.

Bạn có thể đặt tệp tài nguyên bên ngoài thư mục. Hoặc sử dụng máy chủ trạng thái cho các phiên.