Сбой IsPostBack в ASP.NET?
У нас есть приложение ASP.NET 3.5, которое мы создали для логистической компании, которое позволяет их клиентам вводить данные о поставках / заданиях и вводить их в систему.
Основной страницей в системе является экран "Добавить задание", как вы можете себе представить - когда пользователь создает свою работу, мы храним некоторую информацию об этом в сеансе. Затем, когда они совершают работу, или в Page_Load
событие, когда запрос не является обратной передачей, сеанс очищается готовым к следующему заданию.
У нас возникла проблема с небольшим процентом клиентов, когда пользовательские сеансы, по-видимому, стираются до того, как происходит фиксация - пользователи уверяют нас, что они не пытаются использовать несколько сеансов (то есть 2 окна на одной странице), Мы добавили в журнал некоторые сообщения об ошибках, которые регистрировались всякий раз, когда сеансы очищались на этой странице, и кажется, что "чистый сеанс" в Page_Load
событие запускается за несколько секунд до того, как они нажмут кнопку отправить Обратите внимание, у нас есть много autopostback
элементы управления на этой странице.
Существуют ли какие-либо причуды ASP.NET или браузер в этом отношении, это будет означать IsPostback
свойство будет неверно ложным? Это очень спорадическая проблема, и нам не повезло воспроизвести это!
1 ответ
Как отмечается во многих комментариях, сессия является неправильным решением. Это может быть сброшено многими вещами (например, утилизация пула приложений).
Вы не должны заставлять пользователя не использовать разные браузеры или вкладки, поэтому правильный выбор - переместить данные в состояние ViewState/Control.
Если по какой-то странной причине вам все еще нужно хранить данные в сеансе, рассмотрите возможность переключения на постоянное хранилище сеансов (т. Е. С использованием SQL Server).