2010-02-19 3 views
5

Я работаю над веб-приложением ASP.NET MVC, и я создал свой собственный модуль аутентификации, который основан на сеансе (без файлов cookie). Проблема заключается в следующем: когда я перестраиваю приложение, я автоматически регистрирую (сеанс пуст).Сессия пуста в ASP.NET/IIS после rebuild

Обычно это не является большой проблемой, потому что мое приложение не «автоматически» перестраивается в производственной среде. Но я также создал модуль, который изменяет файлы ресурсов, и после изменения файла ресурсов приложение, похоже, автоматически перестраивается.

Итак, мой фактический вопрос: возможно ли «сохранить» переменные сеанса/остаться включенными после восстановления?

+0

Во время разработки я всегда предпочитал, чтобы это было так ... причина: Если вы (или один из команды) меняете объектную модель, которая сохраняется на сеансе, скорее всего, она взорвется или атрибут, который вы использование может быть нулевым или что-то в этом роде. – cyberzed

ответ

6

Вам нужно будет использовать что-то другое, кроме сеансов InProc. Вам нужно будет использовать сервер ASP.net State Server или SQL-сервер в качестве хранилища резервных копий для ваших сеансов. Они могут быть немного медленнее, но более устойчивы.

+1

Спасибо. Нашли дополнительную информацию об этом: http://support.microsoft.com/kb/317604 –

+0

Эта ссылка помогла мне: http://www.brianstevenson.com/blog/aspstate-concurrently-running-for-net-1011 и-нетто-20 / –

1

Как отмечает Пэдди, вам нужно будет использовать что-то другое, кроме сеансов InProc. Перейдите на страницу MSDN, чтобы узнать, как изменить решение SQL или Windows Service.

На самом деле, я считаю, что всегда полезно использовать сеансы внепроцесса. Производительность, попадающая при использовании государственной службы ASP.NET в том же поле, минимальна, и вы не будете испытывать неприятных сюрпризов, если вы решите изменить механизм состояния сеанса в какой-то момент в будущем (во время запуска InProc вы можете что-то засунуть в сеанс, но как только вы используете состояние сеанса вне процесса, данные должны быть сериализуемыми, что может стать неприятным сюрпризом в то время, когда сюрпризы не приветствуются).

Смежные вопросы