2014-02-20 4 views
0

알 수없는 이유로 내 웹 사이트는 로컬 디버깅 IIS 나 IIS 배포시 브라우저에 ASP.NET_SessionId 쿠키를 보내지 않으므로 각 페이지에서 항상 세션이 비어 있습니다. IIS 환경 설정에서 '세션 상태'가 '처리 중'으로 설정됩니다 (미안하지만 정확한 번역이 아닐 수도 있습니다.) 이 문제에 대한 아이디어가 있습니까?호출간에 세션 값이 손실됩니다.

추가 1 : 음, sessionstate 모드를 <sessionState cookieless="UseUri" />으로 변경했습니다. 브라우저의 URL 주소가 이제 (S(fn215g55r4kws155lbfaxf55)) 태그를 포함하지만, Session ASPX 페이지의 속성은 항상 비어 있습니다. 그래서 ... 명백한 이유없이 내 웹 사이트는 여전히 세션이 없습니다.

추가 2. 동일한 디버그 서버에서 빈 웹 사이트를 만들고 세션 쿠키가 정상적으로 작동합니다. 호출간에 값이 유지됩니다. 그래서, 문제는 내 메인 웹 사이트 나 web.config와 관련이 있습니다.

덧셈 3. @Damien_The_Unbeliever에서 언급했듯이 문제는 실제로 값을 설정하는 것과 관련이 있습니다. 이유는 모르겠지만 세션은 완전히 라인을 무시합니다 Context.Session[promoCodeSessionKey] = (int?)promoCode.Id;. 이 줄 뒤에 쿠키가 전송되지 않습니다. 그러나 세션이 이미 다른 장소에 만들어져 있고 쿠키가 설정된 경우이 줄이 올바르게 작동합니다.

덧셈 4. 이유를 찾았습니다. 아래 답변을 참조하십시오.

+0

브라우저에서 쿠키를 사용 중지하지 않았습니까? 특정 브라우저를 사용해보실 수 있습니까? –

+0

불행히도 모든 브라우저는 세션 쿠키를받지 못합니다. 다른 모든 쿠키는 괜찮습니다. 피들러를 사용하여 추적합니다. – Denis

+2

실제로 세션을 * 사용하고 있습니까? 세션 쿠키는 사용 중이기 때문에 실제로 세션이 생성 될 때까지 설정되지 않고 세션 ID는 다시 생성됩니다. –

답변

0

우OOOO !! 나는 그 이유를 발견했다! ASPX의 <%@ Page 태그에 EnableSessionState="ReadOnly" 지시문이 있습니다. 주의하시기 바랍니다. a)이 때문에 Session은 마스터 페이지에서도 작동하지 않았으며 b) 예외가 없습니다 !!

관련 문제