1-й пост на stackoverflow, надеюсь, что вы получите отличную обратную связь
В настоящее время я пытаюсь сбалансировать загрузку нашего веб-сайта. Мы настроили 2 кластера NLB на Windows Server 2003 с IIS 6.
Во время тестирования установки я обнаружил, что иногда наша сессия теряется. Через полтора дня вот результат:
- Да, наш machine.config имеет одинаковый ключ шифрования / дешифрования.
- Да, идентификатор в iis metabase.xml одинаков для обеих машин. На самом деле, весь файл одинаков, за исключением «AdminACL».
- Для обоих веб-приложений установлен StateServer, и оба они указывают на один и тот же компьютер.
С этого момента поиск в Google дает меньше информации и возможных решений.
Из того, что я знаю, нет конкретного паттерна, вызывающего эту проблему. Это случается время от времени.
При попытке найти проблему я видел, что запрос отправил на сервер файл cookie идентификатора сессии asp, но сервер не сопоставил его с сеансом пользователя.
Итак, запрос номер x был отправлен от клиента, с cookie, сеанс был сопоставлен, и все прошло гладко.
Номер запроса x + 1 был отправлен от клиента с файлом cookie, но сеанс не найден.
Оба запроса были сделаны на одной машине в NLB.
Вот фрагмент asp trace.axd:
1-й запрос:
Запрос деталей
Идентификатор сеанса: j2ffvy45updpc52uhw1mbg55 Тип запроса: GET
Время запроса: 26.11.2008 14:58:06 Код состояния: 200
Кодировка запроса: Unicode (UTF-8) Кодировка ответа: Unicode (UTF-8)
Запрос коллекции куки
Имя Значение Размер
ASP.NET_SessionId j2ffvy45updpc52uhw1mbg55 42
ПОМОЩЬ 22 9
Коллекция ответных файлов cookie
Имя Значение Размер
Коллекция заголовков
Имя Значение
Cookie ASP.NET_SessionId = j2ffvy45updpc52uhw1mbg55; AID = 22 * 1045 *
2-й запрос:
Подробности запроса
Идентификатор сеанса: Тип запроса: POST
Время запроса: 26.11.2008 14:58:08 Код статуса:
Кодировка запроса: Unicode (UTF-8) Кодировка ответа:
Запрос коллекции файлов cookie
Имя Значение Размер
Коллекция ответных файлов cookie
Имя Значение Размер
Коллекция заголовков
Имя Значение
Cookie ASP.NET_SessionId = j2ffvy45updpc52uhw1mbg55; AID = 22 * 1060 *
Как вы можете видеть во втором запросе, cookie отправляется клиентом, но asp, похоже, никогда не добавляет cookie в свою «Коллекцию запросов Cookies». Я думаю, именно поэтому он не находит сессию.
Так почему же cookie не отображается в сеансе? Это проблема? Проблема в другом месте?
Не стесняйтесь спрашивать любые разъяснения.
Спасибо всем за отзыв.
JF