Приложение asp.net сессионное состояние iis7 пересекает несколько пользователей в разных местах - PullRequest
1 голос
/ 14 сентября 2011

получил веб-приложение asp.net (2.0), которое мы перенесли с iis 6 на iis 7. это работало хорошо в течение 6 месяцев. три дня назад мы наблюдали проблемы, когда один вошедший в систему пользователь видит другую информацию о пользователе. (информация о сеансе) сеанс в процессе

Единственное, что я вижу, это то, что пул приложений iis7 находится в интегрированном режиме.

мы сняли приложение. Веб-конфигурация приложения, как показано ниже

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
  <remove name="ScriptModule"/>
  <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
  <remove name="WebServiceHandlerFactory-Integrated"/>
  <remove name="ScriptHandlerFactory"/>
  <remove name="ScriptHandlerFactoryAppServices"/>
  <remove name="ScriptResource"/>
  <remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
  <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode"/>
  <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/>
  <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>

Кто-нибудь знает, что это может быть у приложения не было этой проблемы в iis6 в течение года и не было никаких проблем в iis7 в течение 6 месяцев.

мы не используем глобальные переменные ...

1 Ответ

3 голосов
/ 16 сентября 2011

В iis7 имеется функция / вывод ошибок при использовании пула приложений.

для 3.5 (классический) режим необходимо явно отключить его для расширений .aspx. Сеансы IIS7: пересечение, перепутывание, копирование. Обнаружена проблема.в веб-ферме: IIS 7 Сессии пользователей были пересечены / перепутаны / скопированы.Пользователь получал сеанс другого !!!!

После некоторых исследований я обнаружил, что IIS 7 теперь также имеет возможность кэшировать динамический контент.Это новая функция в IIS7, эта версия IIS представила некоторые новые функции кэширования.(i) IIS7 автоматически кэширует статическое содержимое, такое как страницы HTML, изображения и таблицы стилей.(ii) IIS7 теперь также может кэшировать динамическое содержимое.

В IIS7 отключите кэширование страниц .aspx в любом каталоге со страницей asp.net, которая зависит от состояния сеанса.Для этого выполните следующие действия: 1. Запустите консоль управления сервером и перейдите к разделу Роли -> Веб-сервер (IIS) -> Информационные службы Интернета.2. Выберите сайт, который вы хотите изменить.3. Выберите папку, содержащую страницы ASPX, для которых необходимо отключить кэширование.4. В представлении Feature дважды щелкните «Кэширование вывода».5. Если там уже есть правило для расширения .aspx, дважды щелкните по нему.В противном случае щелкните правой кнопкой мыши и выберите «Добавить…». 6. Введите .aspx для «Расширения имени файла». 7. Проверьте «Кэширование в пользовательском режиме», «Запретить все кэширование», «Кэширование в режиме ядра» и «Запретить все кэширование».

...