Назад | Перейти на главную страницу

Смешанные сеансы с классическим ASP на IIS 7.5 и Windows 2008 R2 64 бит

Недавно были проблемы с обновлением сервера с IIS 6 в Windows 2003 до IIS 7.5 в Windows 2008 R2 64 бит.

У нас есть ряд веб-сайтов, работающих на классическом ASP. Все сайты находятся под определенным сайтом, например www.example.com/foo и www.example.com/foobar.

В IIS 6 каждый сайт был настроен как виртуальный каталог, и все работало нормально. С момента перехода на новую настройку многие веб-сайты, похоже, имеют смешанные сеансы. Чтобы было ясно, это не проблема утилизации пула приложений; скорее сеансы заполняются информацией, когда пользователь попадает на сайт и во время просмотра он получает сеансы с разных сайтов.

Мы определили это на основе того, что несколько клиентов позвонили и сообщили, что в их корзине покупок есть товары с названиями товаров, принадлежащих другому сайту, а также наше собственное тестирование показало, что некоторые выполняемые запросы будут пытаться доставить товары с другого сайта. сайт

Мы пробовали - отключить динамическое кэширование - преобразовать каждый сайт в виртуальное приложение (если я правильно понимаю, концепции виртуального каталога / приложения были несколько изменены / уточнены в IIS 7, хотя, честно говоря, я не понимаю, в чем разница is) - различные изменения пула приложений (с использованием .NET 2 framework), классический и интегрированный режимы, изменение модели процесса на NetworkIdentity), все безрезультатно.

Единственное, чего мы не пробовали, - это изменить его для работы как 32-битное приложение.

Мы не используем файлы cookie только http, поэтому, когда я открываю браузер и набираю

document.cookie

в консоль разработчика в Firefox / Chrome / IE, что будет несколько значений ASPSESSIONID = ..., тогда как раньше я полагал, что было только одно.

Наконец, мы используем JScript на стороне сервера для классических страниц ASP, а не VBScript, поэтому у нас есть код, аналогичный приведенному ниже.

// учетная запись пользователя в виде объекта jscript Session ("user") = {email: "foo@foobar.com", id: 123};

и если мы выполним строку кода, как показано ниже:

Response.Write (typeof (Session ("пользователь")));

Когда все работает правильно, мы получаем «объект» - как и ожидалось. Когда сеанс удаляется, вывод становится «неизвестным», и мы также не можем получить доступ к полям в объекте JScript (например, полям .email или .id).

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

Это все еще звучит замечательно как проблема пула приложений / утилизации. Вы уверены, что действительно использовали файлы cookie ASPSESSIONID в IIS6, или существует специальное решение для управления сеансом с собственным файлом cookie?