2011-01-20 3 views
1

У меня что-то странное происходит с нашим состоянием сеанса. Наше приложение ASP.NET C# имеет тайм-аут сеанса 10 минут, но, похоже, проигрывает состояние сеанса при перенаправлении между страницами.Stange issue with session

Итак, мы изложили значение сеанса, и перенаправить к следующему шагу,

 Session["temp"] = "somevalue"; 
     Response.Redirect("page2.aspx"); 

В верхней части page2, мы проверяем значение сеанса, а если нет, перенаправить обратно к началу (Приведенный ниже код является первой на Page_Load):

 if (Session["temp"] == null) 
     { 
      Response.Redirect("start.aspx"); 
     } 

вопрос в том, что продолжает делать переадресацию, даже если сессия не истекло.

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

Есть ли что-то еще, что может заставить нас потерять сеанс?

+0

Можете ли вы показать нам, что вы здесь установили? Не забудьте проверить http://ondotnet.com/pub/a/dotnet/2003/03/24/sessionstate.html информацию. – Peter

ответ

0

пытаются добавить в system.webServer -> modules секции в web.config следующие строки:

<remove name="Session" /> 
<add name="Session" type="System.Web.SessionState.SessionStateModule" /> 
+0

Сайт работает на IIS6 (не на нашем выбор), так это просто в httpmodules? – mp3duck

+0

@ mp3duck, Да - httpmodules. –

+0

ОК. Я пробовал это, но это не решило проблему? – mp3duck

1

В зависимости, как настроена ваша сеанса, проблемы печенья может привести к потере сессии. Как можно переключать домены/переключение между http и https.

И как в сторону, если вы подключаетесь через мобильную связь, все виды ужасных вещей может произойти с вашим печеньем ...

1

Disabled Coockies может быть проблемой. Вы также можете создать совершенно новое приложение (с по умолчанию web.config без каких-либо изменений) с одной страницей и протестировать его. Это скажет вам, является ли проблема конкретным для конкретного приложения или для конкретного сервера.