2010-10-12 3 views
2

У меня проблема с таймаутом.время ожидания и тайм-аут сеанса

Во-первых, тайм-аут происходит каждые 20 минут на сервере, даже если время в webconfig равно 120 минутам.

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

<authentication mode="Forms"> 
<forms loginUrl="Login.aspx" defaultUrl="~/Default.aspx" name="GUI" slidingExpiration="true" timeout="120" path="/"> 
</forms> 
</authentication> 
<authorization> 
<deny users="?"/> 
    <allow users="*"/> 
</authorization> 

<sessionState mode="InProc" cookieless="false" timeout="120"/> 

Это то, что есть в моем webconfig.

ответ

2

Я понимаю, что с установкой вы описали ASP.NET не позволяет неавторизованный доступ к веб на ваш сайт. Это означает, что, когда вы идете WebForm1.aspx вы получите перенаправлены на страницу входа в систему с этим URL

/login.aspx?ReturnUrl=%2fWebForm1.aspx 

Затем на странице входа в систему вы можете иметь что-то вроде этого

protected void LoginButton_Click(object sender, EventArgs e) 
    { 

     if (FormsAuthentication.Authenticate(UsernameTextbox.Text, PasswordTextbox.Text)) 
      FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text,false); 
     else 
      // Let the user know they didn't authenticate 

    } 

Это перенаправляет обратно независимо от того, что указывает ReturnUrl.

Ну, если вы этого не хотите, не делайте этого. Сделайте что-то подобное вместо этого.

protected void LoginButton_Click(object sender, EventArgs e) 
    { 

     if (FormsAuthentication.Authenticate(UsernameTextbox.Text, PasswordTextbox.Text)) 
      Response.Redirect("default.aspx"); 
     else 
      // Let the user know they didn't authenticate 

    } 
+0

, это может быть просто ответом на мою проблему с страницей по умолчанию .. позвольте мне проверить ... – user175084

1

Проверьте следующие вещи:

  • Вы определенно получили 120 минут в вашем web.config?
  • Это ваш единственный web.config? Если нет, это выбор этих значений из правильного места?
  • Использование стельку (или аналогичный), чтобы проверить ваш браузер по-прежнему запрашивает с куки (особенно после 20 минут)
+0

да жаль сделали это изменение ... – user175084

+0

Я думаю, что 120 мин проблема в том, что из IIS на сервере .. Я делаю свое исследование, но если у вас есть какие-либо идеи, пожалуйста, дайте мне знать .. спасибо .. на 64% действительно так плохо ...?/ – user175084

+1

@ user175084 - 64% не обязательно так плохо, просто пытаюсь понять, почему больше не ответили на ваш вопрос –

5

Это может быть или не быть связано с вашей конкретной проблемой, но пользовательские сессии в процессе не смогут пережить применение. Проверьте IIS, что время обращения к вашему приложению достаточно велико. Ваши сеансы могут действительно длиться 120 минут , если приложение остается активным, но как только он простаивает слишком долго, ваше приложение будет перерабатываться, а ваши сеансы пользователя станут недействительными.

1

Hi Посмотрите на пул приложений в iis, проверьте дополнительные параметры-> модель процесса-> время простоя (минуты). Установите это значение выше 20 минут. Похоже, что рабочий процесс закрывается, потому что он простаивает. Часто это происходит с тестом-системами, потому что они не получают, что много хитов, чтобы остановить время бездействия от ног в.

Приветствие Тигр