Отладка проблем сервера состояний сеанса ASP.NET
У нас есть приложение, которое работает на экземплярах сервера с балансировкой нагрузки и поэтому настроено на использование службы состояний сеансов ASP.NET, которая работает на одном из наших серверов БД. Хотя оба экземпляра нашего приложения могут успешно подключаться к серверу состояний, изменения в данных состояния сеанса не отражаются в обоих из них. FI, если я позвоню Session.Add('SomeKey', SomeData)
на сервере A это не отражается, если я тогда пытаюсь получить доступ Session['SomeKey']
на сервере Б.
Session.SessionID возвращает одинаковое значение на обоих серверах, и я проверил, что они оба используют одинаковые значения ключей валидации и дешифрования, настроенных в разделе machinekey файла machine.config. Я даже пытался указать эти значения в приложениях web.config.
Какие другие вещи я должен искать, которые могут вызывать эти симптомы, и какие шаги люди могут порекомендовать, чтобы помочь отладить эту проблему?
2 ответа
Помогает ли это:
http://support.microsoft.com/kb/325056?
Чтобы поддерживать состояние сеанса на разных веб-серверах в веб-ферме, путь приложения веб-сайта (например, \LM\W3SVC\2) в метабазе Microsoft Internet Information Services (IIS) должен быть одинаковым для всех веб-сайтов. серверы в веб-ферме. Случай также должен быть таким же, потому что путь к приложению чувствителен к регистру.
В итоге я использовал iiscnfg /copy для выполнения полной копии метабазы IIS с одного сервера на другой, и это решило проблему. Спасибо Э.Дж. Бреннану за то, что он поставил меня на путь к славе.