Сеанс очищается при отладке ASP.NET, но отлично работает на сервере разработки и тестирования - PullRequest
4 голосов
/ 04 января 2011

У меня странная проблема, когда сессия заканчивается после обратной передачи, когда я отлаживаю ее в visual studio 2010.

Я храню переменную в сеансе на первой странице. Он сохраняет свое значение на следующей странице, но после этого он теряется. Возвращает нулевое значение. Странно то, что когда я копирую точный код на сервер разработки или тестирования, он работает нормально ...

Есть идеи, что может случиться? Благодарю.

UPDATE
Код довольно прост. У меня есть default.aspx страница, где я устанавливаю переменную сеанса:

 HttpContext.Current.Session["PurchaseOID"] = purchaseOID;

Когда я нажимаю «Далее», страница Default.aspx перенаправляет ее на страницу Information.aspx. На этой странице собрана дополнительная пользовательская информация (с использованием элементов управления DevExpress). Когда я нажимаю «Далее» на этой странице, переменная сеанса «PurhcaseOID» возвращает ноль при загрузке страницы.

protected void Page_Load(object sender, EventArgs e)
{
      if(HttpContext.Current.Session["PurchaseOID"] == null){
        throw new Exception("error!");
      }
}

Что странно, сессия сохраняется при первой загрузке страницы. Но при обратной передаче он теряет свои переменные. Кроме того, это то, что просто начало происходить. Я работал над этим кодом в течение месяца или около того, и он работал нормально. Когда я размещаю этот точный код на нашем dev или тестовом сервере, он работает нормально.

Я отлаживаю это в Кассини. Помощь будет принята с благодарностью, спасибо!

Шахзад Чаудхари

Ответы [ 2 ]

1 голос
/ 04 января 2011

Когда вы тестируете, у вас отключены куки?Я спрашиваю, потому что идентификатор сеанса хранится в cookie, если вы не используете сеансы без cookie (редко).Таким образом, если в вашей тестовой среде у вас отключены файлы cookie в вашем браузере, он не сможет получить значения сеанса.Хотя я не верю, что при их сохранении возникает какая-либо ошибка.

0 голосов
/ 06 января 2011

Я понял, это была глупая ошибка.Изменение происходило в методе Global.asax Application_Error.По какой-то причине, когда я ставлю точку останова, она не срабатывает.

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