У нас есть веб-приложение ASP.NET MVC2. По причинам, выходящим за рамки этой проблемы, мы решили использовать классическое состояние сеанса в приложении. В нем реализованы следующие функции, связанные с сеансом.
- Обработчик события Session_Start в global.asax сохраняет переменную в сеансе. Это связано с обходным решением для определения истечения сеанса.
Используемый сеанс имеет следующие значения в web.config:
sessionState timeout = "30" mode = "InProc" cookieless = "UseCookies"
Используется проверка подлинности с помощью форм, в web.config установлены следующие значения:
forms loginUrl = "~ / Account.aspx / LogOn" timeout = "1440" protection = "All" slideExpiration = "false"
Веб-приложение работало в IIS6 без проблем, пока мы не развернули его на IIS7.5. На IIS7.5 все, кроме сессии, кажется, работает. Кажется, сессия либо восстанавливает, либо теряет значения; короче говоря, он не прилипает, это происходит только в IE8; все еще работает в Chrome и Firefox.
Поиск в Google приводит к возможным ответам, которые; global.asax не запускается в IIS7.5. Некоторые ребята работали как веб-приложение в IIS7.5; но мы работаем как сайт. Преобразование его в веб-приложение, похоже, не решает проблему для нас, поскольку мы тоже это пытались.
Конфигурация для нашего нового сервера: Windows 2008 R2, IIS7.5, asp.net framework 2,3.5 и 4 установлены на машине.
Интересным аспектом этого является то, что сессия, похоже, работает в браузерах Google Chrome и Firefox; что заставляет нас думать, что это может иметь отношение к генерации файлов cookie на клиенте.
Если кто-то сталкивался с этой проблемой и имеет решение, мы все уши.
Заранее спасибо за помощь.