Значения сеанса после перенаправления равны нулю, кроме случаев, когда они работают в режиме VS Debug. - PullRequest
1 голос
/ 11 января 2010

У меня есть веб-приложение ASP.NET, которое принимает пользовательский ввод в нескольких формах. Вроде как волшебник. В первой форме пользователь вводит информацию, затем нажимает кнопку «Далее». В событии Click кнопки я сохраняю некоторую информацию в объекте Session (через Свойства на главной странице). Затем я перенаправляю на следующую страницу.

Вот пример того, что я делаю:

На первой странице ...

protected void NextButton_Click(Object sender, EventArgs args)
{
  //Go to the next form
  Master.SessionVal1 = Value1;
  Master.SessionVal2 = Value2;
  Response.Redirect("~/TheNextPage.aspx", false);
}

В MasterPage.cs ..

public long Value1
{
    get { return (long)Session["Value1"]; }
    set { Session["Value1"] = value; }
}

public long Value2
{
    get { return (long)Session["Value2"]; }
    set { Session["Value2"] = value; }
}

Довольно простые вещи. Когда я запускаю это в режиме отладки в VS2008, он работает отлично. Когда я отправляю это на тестовый сервер (IIS7), я получаю исключения NullReference при попытке доступа к Value1, Value2 и т. Д., Которые хранятся в объекте Session.

UPDATE: Я обнаружил, что если я перенесу код на один сервер, я получу проблему, как описано выше. НО, если я продвигаюсь на другой сервер, он работает как положено.

Оба сервера являются Windows Server 2008 с IIS7. Я просмотрел настройки пула приложений и настройки управления состоянием и не вижу различий.

Ответы [ 2 ]

0 голосов
/ 12 января 2010

Что-то отличается от конфигурации этих двух машин, без сомнения об этом.

Итак, вы сделали различие в web.config для этих двух машин, и они идентичны? Не просто беглый взгляд, а запустить его через программу сравнения? (Мне нравится CompareIt!)

Если это так, вам нужно перейти к остальному дереву конфигурации ... master web.config в каталоге установки ASP.NET ... Затем machine.config.

Вы найдете что-нибудь.

0 голосов
/ 11 января 2010

Хорошо, я только что добавил это в web.config:

<sessionState cookieless="true" />

и это сработало, но должен быть другой способ решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...