Я разработал веб-приложение ASP.NET, установленное на «живой» IIS 7.5. Веб-приложение использует http-сеансы для передачи параметров между страницами для зарегистрированных пользователей. Это отлично работает на моей машине разработки (протестировано с локальным IIS в VS2010 IDE), но когда это веб-приложение загружается в IIS клиента, и они начинают использовать его (браузеры Google Chrome и IE), в некоторые случайные моменты переменные сеанса кажутся исчезают. Мой первый догадка увеличить значения тайм-аута сеанса с помощью файла web.config, добавив следующую строку:выпуск сеансов веб-приложений ASP.NET
<configuration>
<system.web>
<sessionState timeout="20"></sessionState>
</system.web>
</configuration>
Но это, кажется, не решить проблему. Так что это заставило меня задуматься, какие другие настройки существуют в отношении сеансов? Что-то вроде внутренней папки, которая хранит кеш всех сеансов, которые переполняются в реальном IIS? Есть идеи?
EDIT: Следуя предложению @wy __, я изменил файл web.config и начал видеть ту же проблему на своей машине dev. Вот вся секция system.web как у меня сейчас:
<system.web>
<compilation targetFramework="4.0" debug="false"/>
<pages validateRequest="false"/>
<httpRuntime requestValidationMode="2.0" executionTimeout="110" maxRequestLength="262144"/>
<sessionState timeout="20" cookieless="true" regenerateExpiredSessionId="true"></sessionState>
</system.web>
Я также проверил, и есть только один w3wp.exe
запущенный процесс.
Убедитесь, что браузер не блокирует куки на компьютере клиента. Поскольку это происходит случайным образом, это маловероятно, но оно должно быть в контрольном списке. – RacerNerd
Можете ли вы рассказать нам больше о настройке IIS? Это единственный сервер IIS, это веб-сад или веб-ферма? Используете ли вы провайдер состояния сеанса InProc, State или SQLServer? –
@RacerNerd: Я не могу быть уверен, так как это происходит на машине клиента. Но они сообщают о той же проблеме для Chrome и IE. – c00000fd