source

ASP.NET의 세션 시간 초과

ittop 2023. 5. 17. 23:25
반응형

ASP.NET의 세션 시간 초과

IIS 6.0에서 ASP.NET 2.0 응용 프로그램을 실행하고 있습니다.세션 제한 시간을 기본 20분이 아닌 60분으로 설정합니다.다음을 수행했습니다.

  1. <sessionState timeout="60"></sessionState>web.config.
  2. IIS 관리자/웹 사이트 속성/ASP에서 세션 제한 시간을 60분으로 설정합니다.NET 구성 설정.
  3. 애플리케이션 풀 속성/성능에서 유휴 시간 초과를 60분으로 설정합니다.

저는 아직 20분에 세션 타임아웃을 받고 있습니다.제가 더 해야 할 일이 있습니까?

양식 인증을 사용하고 있습니까?

양식 인증확인은 제한 시간(기본적으로 30분)에 자체 값을 사용합니다.양식 인증 시간 초과는 세션이 계속 활성화된 상태에서 사용자를 로그인 페이지로 보냅니다.이것은 세션이 시간 초과될 때 앱이 수행하는 동작처럼 보일 수 있으므로 서로 혼동하기 쉽습니다.

<system.web>
    <authentication mode="Forms">
          <forms timeout="50"/>
    </authentication>

    <sessionState timeout="60"  />
</system.web>

양식 시간 초과를 세션 시간 초과보다 작은 값으로 설정하면 사용자가 세션 데이터를 잃지 않고 다시 로그인할 수 있는 창을 제공할 수 있습니다.

web.config나 IIS에 대해 잘 모릅니다.하지만 저는 C# 코드에서 당신이 그것을 할 수 있다고 믿습니다.

Session.Timeout = 60; // 60 is number of minutes

web.config 파일에서 다음 코드 블록을 사용합니다.여기서 기본 세션 제한 시간은 80분입니다.

<system.web>
 <sessionState mode="InProc" cookieless="false" timeout="80" />
</system.web>

다음 링크를 사용하여 팝업 경고 메시지가 표시된 세션 시간 초과에 사용합니다.

세션 시간 초과 예제

참고: 위의 예제는 디벡스 프레스 팝업 컨트롤로 수행되므로 디벡스 프레스 팝업 컨트롤을 일반 팝업 컨트롤로 사용자 지정/교체해야 합니다.디벡스 프레스를 사용하는 경우 사용자 지정할 필요가 없습니다.

제 상황에서는 애플리케이션 풀이었습니다.xx분 동안 유휴 상태일 때 다시 시작하도록 설정되어 있습니다.다시 시작하지 않도록 설정하면 웹 구성의 값이 사용되는 것 같습니다.

machine.config에 적용될 수 있는 내용이 있습니까?web.config에서 세션 시간 초과를 설정하면 IIS 또는 machine.config의 모든 설정을 재정의해야 하지만 응용 프로그램의 하위 폴더 어딘가에 web.config 파일이 있는 경우 해당 설정은 응용 프로그램 루트에 있는 파일을 재정의합니다.

또한 IIS의 시간 초과는 .aspx가 아닌 .asp 페이지에만 영향을 미칩니다.web.config의 세션 코드가 정확합니까?다음과 같이 보여야 합니다.

<sessionState
    mode="InProc"
    stateConnectionString="tcpip=127.0.0.1:42424"
    stateNetworkTimeout="60"
    sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
    cookieless="false"
    timeout="60"
/>

보통은 그게 당신이 할 일의 전부입니다...

20분 후에 세션이 손실되는 이유가 유휴 상태이기 때문이라고 확신하십니까?

세션이 지워질 수 있는 이유에는 여러 가지가 있습니다.IIS에 대해 이벤트 로깅을 사용하도록 설정한 다음 이벤트 뷰어를 사용하여 세션이 지워진 이유를 확인할 수 있습니다.아마도 다른 이유 때문이라는 것을 알게 될 것입니다.

또한 이벤트 메시지 및 관련 이벤트 표대한 설명서를 읽을 수 있습니다.

https://usefulaspandcsharp.wordpress.com/tag/session-timeout/

<authentication mode="Forms">
  <forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH" timeout="60" slidingExpiration="true" />
</authentication>

<sessionState mode="InProc" timeout="60" />

인증을 사용하는 경우 web.config 파일에 다음을 추가하는 것이 좋습니다.

이 경우 시간 초과 시 사용자가 로그인 페이지로 리디렉션됩니다.

<authentication mode="Forms">
    <forms defaultUrl="Login.aspx" timeout="120"/>
</authentication>

ASP.Net core 1.0(vNext 또는 vNext에 사용되는 이름) 세션은 다르게 구현됩니다.을 에서세 션초변 경했습다에서 변경했습니다.Startup.cs,void ConfigureServices매개 변수:

services.AddSession(options => options.IdleTimeout = TimeSpan.FromSeconds(42));

또사할경우를 .appsettings.json파일을 사용하면 다음과 같은 작업을 수행할 수 있습니다.

// Appsettings.json
"SessionOptions": {
    "IdleTimeout": "00:30:00"
}

// Startup.cs
services.AddSession(options => options.IdleTimeout = TimeSpan.Parse(Config.GetSection("SessionOptions")["IdleTimeout"]));

설정은 IIS에서 확인할 수 있습니다.

설정

서버 레벨, 웹 사이트 레벨 또는 앱 레벨의 "ASP"에서 확인할 수 있습니다.

여기 web.config 수준에서 설정하시면 될 것 같습니다.이것을 직접 확인하십시오.

<configuration>
   <system.web>

      <!-- Session Timeout in Minutes (Also in Global.asax) -->
       <sessionState timeout="1440"/>

   </system.web>
</configuration>

기본 세션 시간 초과는 IIS에서 20분으로 정의됩니다.

IIS 8.5 웹에서 호스트되는 각 사이트에 대해 아래 절차를 따릅니다.

IIS 시간 초과 구성

IIS 8.5 관리자를 엽니다.

사이트 이름을 클릭합니다.

"관리" 섹션에서 "구성 편집기"를 선택합니다.

구성 편집기의 상단에 있는 "Section:" 드롭다운 목록에서 "system.web/sessionState"를 찾습니다.

애플리케이션에 따라 가능한 가장 낮은 값을 사용하여 "제한 시간"을 "00:20:00 이하"로 설정합니다.허용 가능한 값은 고부가가치 애플리케이션의 경우 5분, 중부가가치 애플리케이션의 경우 10분, 저부가가치 애플리케이션의 경우 20분입니다.

[수행] 영역에서 [적용]을 누릅니다.

IIS 세션 시간 초과 값은 클래식 .asp 응용 프로그램에만 해당되며 IIS 구성에서 제어됩니다.ASP.NET 앱의 경우 web.config에서 지정한 시간 초과 값만 적용됩니다.

제거보다 웹 사이트에 대한 세션 시간 제한을 원하는 경우

<authentication mode="Forms">
      <forms timeout="50"/>
</authentication>

web.config 파일의 태그입니다.

시간 초과 속성은 응용 프로그램의 세션 개체에 할당된 시간 초과 기간(분)을 지정합니다.사용자가 제한 시간 내에 페이지를 새로 고치거나 요청하지 않으면 세션이 종료됩니다.

IIS 6.0: 최소 허용 값은 1분이고 최대 허용 값은 1440분입니다.

Session.Timeout = 600;

IIS에서 세션 시간 초과 값을 변경한 후 IIS를 다시 시작하십시오.이 작업을 수행하려면 명령 프롬프트로 이동합니다.IISRESET을 입력하고 Enter 키를 누릅니다.

언급URL : https://stackoverflow.com/questions/648992/session-timeout-in-asp-net

반응형