2012-03-09 4 views
0

내 친구가 여기에 물었다. questionASequ.net 상태 서버가 IRequiresSessionState를 처리하고 IReadOnlySessionState를 처리합니까?

그리고 그에게 대답하는 사람 - 재미있는 것을 썼다! (증거없이, 출처).

out-of-process 세션 상태 저장을 사용하면 더 큰 차이가 있습니다. 이 경우 인터페이스없이 이 변경되지 않은 경우에도 은 세션 데이터를 원격 데이터베이스에 계속 저장합니다 (시스템은 요청 중에 세션 데이터가 수정되었는지 추적하지 않습니다) . IReadOnlySessionState 인터페이스를 사용하면 후기 입 단계를 건너 뜁니다.

어디에서 IRequiresSessionState가 세션을 다시 쓸 것이라고 말합니까?

설명은 기꺼이 제외됩니다.

답변

2

이 효과에 대한 공식적인 문서를 찾을 수 있지만, dotPeek (또는 다른 디스어셈블러)를 점화 System.Web 주변의 모양을 갖는 연속 것을 알 수 없습니다 : 핸들러가 IRequiresSessionState을 구현하는 경우

  • HttpContext.Handlerset입니다 , HttpContext._requiresSessionStateFromHandlertrue으로 설정되고;
  • 이 후자의 개인 회원은 get ter에 HttpContext.RequiresSessionState을 알립니다.
  • SessionStateModule, 그 EndRequest 핸들러에서, (I 추측 징하고있는 모듈 파이프 라인에 항상) HttpContext.RequiresSessionState를 검사하고 true을의 경우, 세션 상태 공급자에 대한 이야기는 상태를 저장 할 수 있습니다.
+0

+1 좋은 연구, 감사합니다! – tsemer