У меня есть веб-приложение MVC3, которое использует сеанс "в процессе" по умолчанию. У меня есть шаблон PRG - то есть во время обратной передачи, если мое состояние модели недействительно, я сохраняю модель в TempData и перенаправляю на исходное действие получения. В действии получения я извлекаю данные модели (если они существуют) и отправляю в представление. Я считаю, что это один из основных аспектов MVC.
Я узнал, что TempData в фоновом режиме — это переменная сеанса, которая используется при переходе PRG. Мне нужно знать, возможен ли конфликт или перекрестная ссылка, если я использую что-то вроде TempData["model"] на двух страницах и получаю доступ к страницам одновременно. Будет ли это перезаписывать общие данные в TempData["model"] или безопасно, если я использую одни и те же имена tempdata на двух разных страницах.
И конфликтует ли это с данными типа Session["model"]? Я столкнулся с неожиданным повреждением данных сеанса - возможно, из-за моего внутреннего кода, который сбрасывает данные сеанса или что-то еще. Возможно ли, что данные сеанса могут быть частично повреждены? Я имею в виду, что Session["data1"] в порядке, но Session["data2"] больше нет?
Мои пользователи часто используют веб-приложение в течение длительного времени, что приводит к тайм-ауту сеанса. Я попытался использовать службу состояния сеанса ASP.Net для сеанса, но это вызвало проблемы с производительностью, поскольку я храню некоторые тяжелые объекты (через сериализацию) в сессия. Итак, наконец, я вернулся к исходному умолчанию в режиме процессов.
Пожалуйста, поделитесь, если у вас был подобный опыт.