Потеря предмета от сеанса периодически

1

я немного потерял...

мы используем совместное использование сеансов sqlserver и на нашем производстве (2 сервера) и промежуточном (2 сервера), я теряю один элемент только из сеансов с перерывами. И постановка и производство сбалансированы по нагрузке и на тех же серверах, но указывают на разные базы данных.

Моя локальная разработка и сайт dev (другой сервер) не имеют этой проблемы. Они оба используют базу данных dev.

Таблицы сеансов сервера Sql и sprocs специфичны для среды, поскольку они устанавливаются в базе данных dev, промежуточной или производственной базы.

Код для размещения элементов в сеансе

SessionService.AddItem(SessionKeys.LoggedInUser, user);  //this is always available

SessionService.AddItem(SessionKeys.Impersonator, inhouseUser); //this is lost intermittently


public static void AddItem(string key, object value)
        {
            CheckSessionAvailability();
            HttpContext.Current.Session[key] = value;
        }

Получение элемента из сеанса:

User inhouseUser = SessionService.GetItem<User>(SessionKeys.Impersonator);


public static T GetItem<T>(string key)
        {
            object item = null;
            CheckSessionAvailability();
            item = HttpContext.Current.Session[key];
            if ((item != null) && !(item is T))
            {
                throw new ApplicationException("Cannot convert");
            }

            return (T)item;
        }
  • 1
    у вас есть машинный ключ, определенный в web.config?
  • 0
    Да <machineKey validationKey = "..." decryptionKey = "..." validation = "SHA1" decryption = "AES" />
Показать ещё 4 комментария
Теги:
asp.net-mvc
session

1 ответ

0
Лучший ответ

На нашем промежуточном сайте сбалансирован груз... мы отключили узел 2 и только сделали активным узел 1. Он работал без каких-либо проблем.

Первоначально у нас не было настойчивости на промежуточных или производственных площадках. Мы включили сохранение на основе файлов cookie на промежуточном сайте, и, пока мы проверяли, что cookie с персистентностью просматривается в браузере, моя страница по-прежнему не работала должным образом. Мы переключили балансировщик нагрузки, чтобы вместо этого использовать постоянство, основанное на клиентском IP-адресе, а затем, похоже, работали над стадией. Будет реализовывать то же самое на производстве.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню