странная проблема сессии

2

У меня есть это поле в моем классе сеанса:

public bool IsCartRecentlyUpdated
{
    get
    {
        if (this.session["IsCartRecentlyUpdated"] != null)
        {
            return (bool)this.session["IsCartRecentlyUpdated"];
        }
        else
        {
            this.session["IsCartRecentlyUpdated"] = false;
            return (bool)this.session["IsCartRecentlyUpdated"];
        }
    }
    set
    {
        this.session["IsCartRecentlyUpdated"] = value;
    }
}

Всякий раз, когда пользователь добавляет продукт в корзину, я помещаю это значение в значение true:

  public void AddToCart(Product product, int quantity)
    {
        IsCartRecentlyUpdated = true;
     //other code for updating the cart
     }

Добавление продукта в корзину делает обратную передачу, поэтому я могу показать сообщение ( "g: продукт, добавленный успешно" ) в Page_Load на странице общего мастерства, где находится корзина для покупок, когда продукт имеет просто добавлен в корзину:

 protected void Page_Load(object sender, EventArgs e)
{
    if (this.sessionsUtil.IsCartRecentlyUpdated)
    {
        this.lblCartWarning.Text = (string)GetLocalResourceObject("CartWarning");
        imgCardLogos.Visible = false;
    }
    else
    {
        this.lblCartWarning.Text = String.Empty;
        imgCardLogos.Visible = true;
    }
//other code
//put it back to false to not show the message each time the page is loaded
this.sessionsUtil.IsCartRecentlyUpdated = false;
}

Ну, этот код работает отлично локально, но на сервере он не отображает сообщение после добавления продукта в корзину, а во второй загрузке страницы... (Я предполагаю, что на сервере как-то загружается страница перед обновлением сеанса var - крайне странно)

Знаешь почему? Я не вижу никаких проблем в коде...

  • 3
    Используете ли вы InProc Session и является ли ваш основной сайт размещенным на нескольких серверах, расположенных за балансировщиком нагрузки?
  • 0
    Что происходит, когда вы добавляете товар? Кто устанавливает значение сеанса, кто делает обратную передачу, каков порядок?
Показать ещё 5 комментариев
Теги:

1 ответ

1

Странные проблемы, подобные этому, могут быть проще решить с помощью службы IIS express http://weblogs.asp.net/scottgu/archive/2011/01/03/vs-2010-sp1-beta-and-iis-developer-express.aspx

Ещё вопросы

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