Лучший способ изменить время ожидания сеанса для некоторых страниц - PullRequest
1 голос
/ 23 июня 2011

Какой для вас лучший способ сделать это? Я хотел бы, чтобы время ожидания всех страниц моего приложения составляло 20 минут, но 4. Я хотел бы, чтобы время ожидания этих 4 страниц составляло 60 минут ..

Как лучше всего? Нужно ли устанавливать Session.timeout в конструкторе страниц? Есть ли другой способ?

Спасибо

Ответы [ 3 ]

4 голосов
/ 23 июня 2011

Вы можете создать пользовательскую базовую страницу (которая наследуется от System.Web.UI.Page), установить время ожидания сеанса в обработчике Page_Init, а затем настроить эти четыре страницы для наследования от вашей пользовательской базовой страницы. Это дает вам одно место для управления значением тайм-аута сеанса.

1 голос
/ 23 июня 2011

Обязательно установите время простоя для пула приложений:

http://weblogs.asp.net/aghausman/archive/2009/02/20/prevent-request-timeout-in-asp-net.aspx

В соответствии с документацией вы можете установить время ожидания в любое время.Конечно, это должно быть во время запроса к серверу!: -)

Вы можете реализовать пользовательский атрибут страницы, например:

using System;
System.Web.SessionState;

public class TimeoutControlPage: System.Web.UI.Page {
    public int Timeout {
        get { return Session.Timeout; }    
        set { Session.Timeout = value; }
   }

}

, а затем сохранить следующую страницу как «test.aspx»:

<%@ Page Language="C#" Timeout="60"  Inherits="TimeoutControlPage" %>

<html>
   <body>

   </body>
</html>
1 голос
/ 23 июня 2011

Вы можете настроить это через web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <sessionState timeout="20"/>
  <location path="Page1.aspx">
    <system.web>
      <sessionState timeout="60"/>
    </system.web>
  </location>
  <location path="Page2.aspx">
    <system.web>
      <sessionState timeout="60"/>
    </system.web>
  </location>
  <location path="Page3.aspx">
    <system.web>
      <sessionState timeout="60"/>
    </system.web>
  </location>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...