Моя проблема заключается в следующем: - У меня есть сайт .Net MVC, в котором много вызовов для служб WCF, размещенных на двух серверах за сервером балансировки нагрузки (BigIP).сохранение сеанса пользователя на клиенте WCF при выполнении вызовов на серверы за балансом нагрузки
Мне нужно поддерживать сеанс пользователя в службах WCF (управляемый пользовательским токеном). Моя проблема в том, что липкая сессия не работает, когда на сайте регистрируется много пользователей (много одновременных вызовов сервисов).
Что я выяснил, так это то, что когда сайт вызывает повторное использование сервиса, сервер балансировки нагрузки игнорирует липкий файл cookie сеанса и перенаправляет запрос на последний сервер, который получил вызов этим соединением.
Я проверил с помощью сниффера (Wireshark), и каждый вызов отправляется серверу балансировки нагрузки с правильным липким токеном сеанса.
При создании соединения с нуля учитывается cookie-сессия cookie, и запрос отправляется на нужный сервер.
Итак, как я могу справиться с этой ситуацией? Я ищу что-то, что обеспечивает создание нового соединения для каждого вызова, но свойство KeepAliveEnabled = "false" не работает.
Tks.
Попробуйте сделать это псевдо состояние меньше, перемещая данные сессии в синхронном магазин как база данных или AppFabric – TGlatzer
Это мой обходной путь решения, но я избегаю это сейчас, Tks! –
Обратите внимание, что липкие сеансы создают проблемы в случае, если машина отключена для исправления, развертывания или ремонта. Это делает их недопустимым решением большую часть времени. – usr