ASP.NET - исчезающие переменные сеанса - PullRequest
8 голосов
/ 08 апреля 2009

Я работаю в текущем веб-приложении для клиента и у меня возникли проблемы с исчезновением переменных сеанса. Я постараюсь составить хорошее описание сценария как можно лучше. Это не происходит ни на одной странице, кроме страницы, которую я создал, чтобы позволить пользователям изменять строки, хранящиеся в файле ресурсов.

Это появляется, когда: Пользователи переходят на страницу, выбирают файл ресурса из списка и нажимают кнопку «Изменить» в первый раз. Страница загружает файл в сетку и позволяет им редактировать его. В этот момент переменные сеанса сохраняются и корректно перезагружаются при всех обратных передачах. ТЕПЕРЬ они нажимают кнопку сохранения внизу, чтобы записать файл ресурса в файловую систему (App_LocalResources). Они выбирают новый файл из списка, пытаются загрузить его, и на этот раз переменные сеанса очищаются, и он перенаправляет их на страницу входа в систему, потому что он не знает там информацию о пользователе.

Дополнительные детали:

Это происходит только тогда, когда они нажимают кнопку сохранения, которая, в свою очередь, вызывает мою процедуру записи в файл ресурсов.

Я на самом деле мало что делаю в функции сохранения, кроме записи в файл ресурсов, расположенный в App_LocalResources, и по какой-то причине это очищает мои переменные сеанса.

Рассматриваемая переменная сеанса содержит информацию о пользователе, которую я пытаюсь получить как самое первое в методе page_load.

Эта информация о сеансе также выполняется при каждой обратной передаче с помощью метода page_load.

Спасибо всем, надеюсь, я достаточно хорошо это описал.

1 Ответ

10 голосов
/ 08 апреля 2009

IIS будет сбрасывать приложение при изменении файлов в каталоге, связанном с приложением. Сброс приложения приведет к потере памяти-сессий.

Вы можете поместить файл ресурса вне каталога. Или используйте сервер состояний для сеансов.

...