>  기사  >  백엔드 개발  >  ASP 세션 손실 문제를 해결하는 방법을 가르쳐주세요.

ASP 세션 손실 문제를 해결하는 방법을 가르쳐주세요.

Y2J
Y2J원래의
2017-05-18 11:33:171743검색

아마도 많은 ASP 개발자가 이런 상황에 직면하게 될 것입니다. 세션 중에 세션이 아무 이유 없이 손실됩니다. 즉, SessionID가 손실되면 동일한 세션 수준 변수도 손실됩니다.

잘못된 프로그램이나 잘못된 가상 디렉터리 구조로 인해 많은 세션이 손실됩니다.

SessionID는 다음과 같은 이유로 변경됩니다.

이유 1:

Netscape의 브라우저는 "/App/user.asp"와 "/app/user.asp"를 서로 다른 두 프로그램으로 인식합니다. 자동으로 새 세션(새 세션)이 시작됩니다. 따라서 홈페이지에서는 대문자 표기를 통일해야 합니다.

이유 2:

또 다른 이유는 Session.Timeout의 값입니다.

Timeout 속성은 세션 시간 초과를 1분 단위로 설정하는 데 사용됩니다. 사용자가 시간 초과 내에 페이지를 새로 고치거나 요청하지 않으면 세션이 종료됩니다. 페이지를 다시 요청하면 새 세션이 시작됩니다.

Timeout 값이 분 단위인지 확인하세요.

형식: Session.Timeout [= nMinutes]

이유 3:

사용자가 브라우저의 쿠키를 끄면 물론 세션은 Just 그것을 유지할 수 없습니다. 세션 유지는 쿠키에 따라 달라지기 때문입니다.

세션의 상태를 유지하려면 브라우저가 쿠키를 지원하고 열려 있어야 합니다. 물론 다른 방법을 사용할 수도 있습니다.

이유 4:

일반적인 실수는 잘못된 디렉토리 구조를 만드는 것입니다. 다음 디렉토리 구조와 같습니다.

root는 global.asa를 넣습니다.

virtual_root에는 global.asa가 없습니다.

another_virtual_root에는 global.asa가 없습니다.

호출 두 개의 가상 루트 페이지에서 동일한 global.asa(루트에 있는 것)가 실행됩니다.

다른 디렉터리 구조:

루트에는 global.asa가 없습니다.

virtual.global.asa

another_virtual_root 또 다른 global.asa

다른 디렉토리에 있는 각 global.asa는 별도로 실행됩니다. 하지만 내부 코드가 동일하다면 언급하지 마세요. :)

따라서 다른 디렉토리의 페이지를 요청하면 다른 global.asa가 실행됩니다. 다양한 변수가 호출되고, 다양한 세션 ID가 생성됩니다. 이전의 유용한 정보는 모두 삭제됩니다.

자세한 설명은 다음과 같습니다.

처음 자식 가상 응용 프로그램(자식 가상 응용 프로그램)에서 페이지를 탐색한 후 자식 가상 응용 프로그램의 부모를 탐색하면 가상 프로그램 페이지(상위 가상 루트) 해당 변수는 손실되고 파괴됩니다. 다음 양식 을 살펴보세요.
Request subroutine 1 Lost subroutine 2 Loss

루트에게 먼저 물어보세요

서브루틴 1에서만 이전에 루트를 요청하면 그렇지 않습니다. 발생

서브루틴 2 이전에만 루트 요청이 발생하지 않음

마지막 요청 루트 발생

【관련 권장 사항】

1.

무료 ASP 동영상 튜토리얼

2.

ASP에서 Session 개체의 세 가지 방법 소개

3.

ASP 사용 기술에서 Session에 대한 자세한 설명

4.

ASP 세션의 간단한 예

5.

ASP 세션에 대한 자세한 소개

위 내용은 ASP 세션 손실 문제를 해결하는 방법을 가르쳐주세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.