2010-06-29 5 views
0

На PageA.asp я установить переменный сеанс, как такASP переменные сессии потеряли

Session("affiliate") = "xyz.com" 

Когда я нажимаю на ссылку и перейти не PageB.asp, что переменная сеанса больше не существует.

У меня есть другие переменные сеанса, и они сохраняются на всех страницах. Я могу ответить. Запишите мою сессию varariable на PageA.asp, поэтому я знаю, что она создается правильно.

У меня была эта проблема несколько месяцев назад. Тогда я понял, что время от времени мое исправление переписывается. Теперь у меня полная потеря.

Заранее спасибо.

+0

Какие версию IIS вы используете? –

ответ

0

Независимо от того, что я сделал, переменная сеанса терялась в response.redirects. Я закончил тем, что использовал куки.

+0

как вы в конечном итоге использовали cookie? –

1

Возможно, вы очистите переменную где-то еще на своем сайте.

+0

Это странно на странице. Есть примерно 20 переменных сеанса. На странице В имеется примерно 12 переменных сеанса. Где находятся эти 8 переменных сеанса? – s15199d

+0

каждая переменная сеанса принимает значение 5kb + умножение на 20 составляет 0,5 МБ для каждого браузера. возможно, у вас недостаточно памяти на вашем сервере, и некоторые переменные теряются .. они всегда одинаковы, чтобы их потеряли? или это время от времени меняется? –

0

Является ли PageB.asp на том же домене? межсетевые сеансы не будут работать. Те же сеансы домена не должны очищаться, если вы не сбросите его или не очистите содержимое.

У вас есть код, в котором вы заполняете сеанс?

+0

он сказал, что другие переменные сеанса работают .. поэтому мы догадываемся, что он находится в том же домене .. но вопрос был задан так, как будто не желал ответа. –

0

если другие переменные сессии еще можно использовать на PageB.asp, чем это должно работать, как хорошо ..

UNLESS,

  1. , котор вы установите его, чтобы истечь поститься.
  2. У вас есть опечатка в имени переменной сеанса на странице.B.asp. скопировать пасту со страницыA на страницуB.

, не видя код, связанный с сессионных переменных из страницаА и страницаБ его довольно трудно догадаться ..

за ваш комментарий по поводу потери переменных сеанса попробовать:

<% 
dim i 
For Each i in Session.StaticObjects 
    Response.Write(i & "<br />") 
Next 
%> 

это должен перечислять все объекты, хранящиеся в сеансе

1

Есть еще одна проблема, которую я обнаружил недавно. Если вы находитесь на сервере 2008-2003 (IIS6-7), убедитесь, что вы не используете какой-либо другой порт, кроме 80.

По какой-то причине последние версии IIS теряют сессию при перенаправлении, если веб-сайт настроен на использование любых других порт, но 80.

Я отправил отчет об ошибках в Microsoft, но до сих пор ни слова из них, как и что они собираются делать, чтобы исправить это.

0

Для IIS6 нашим основным сеансом убийцы был балансировщик нагрузки. Исправить это - преобразовать в IIS 7. Он обрабатывает сеансы между сбалансированными серверами. Да, мы также обрабатываем куски вещей в файлах cookie.

-1

Попробуйте ограничить рабочий процесс «Веб-сад» до 1.

Найти его здесь:

"IIS Mananger" -> "App Pool" -> "Свойства" -> вкладка "Performance" -> "Максимальное число рабочих процессов"

Смежные вопросы