2010-03-18 2 views
0

그래서 C에서 작성된 .NET 3.5에서 실행되는 사용자 지정 CMS가 있습니다. 이 엔진은 모바일 장치 용 렌더링에 최적화되어 있지만 일반 웹 브라우저에서 서버로 렌더링됩니다. 또한 쿠키가없는 세션도 지원합니다. Great ...캐싱 또는 세션 문제를 일으키는 사용자 정의 HTTPHandler?

데이터에서 렌더링을 완전히 제어하기 위해 (브라우저 데이터 포함) 아무 것도 캐시하지 않도록 선택했습니다. 최근까지 좋은 소식이었습니다.

엔진은 세션 객체 내에 사용자 상태를 기록하는 기본 로그인 기능을 구현합니다.

동작이 다소 이상합니다. 사용자가 아무 문제없이 사이트를 클릭합니다. 그런 다음 로그인하십시오. 로그인이 성공적으로 끝나거나 로그인 화면을 다시 표시하여 캐시 된 페이지가 반환되거나 다시 표시되도록 제안합니다 ... 로그인이 성공하면 동시 페이지 조회수가 임의로 로그인 상태와 로그 아웃 상태 사이를 전환합니다 ... 또한 세션 상태에 액세스 할 수 없거나 캐시 된 페이지가 반환됩니다.

필자는 피들러 등을 사용하여 디버깅했습니다. 디버깅 할 때 동작이 사라집니다.

허?

엔진에서 실행되는 사이트 중 하나는 http://www.wiseguy.mobi입니다 (남아프리카에서는 미안하지만 사용자가 문자 메시지를받을 수 없을 수도 있음).

+0

우리는 세션 상태를 SQL로 이동하여 문제를 해결할 수 있다고 생각합니다 ... –

답변

0

좋아, 그래서 내가

문제는 내 IIS 응용 프로그램이 2 WorkerProcesses을 실행했다는 사실과 관련되었다 ... 멍청있었습니다. 따라서 InProc 세션 상태는 사용자가 작업자 프로세스 중 하나에 도달 할 때 다른 세션 객체 상태를 반환합니다.

이 때문에 SQL SessionState 지속성에서 해결 된 것입니다. 어느 쪽이 좋게 설정 되었는가 이제 문제가 해결되었습니다 ...

관련 문제