2011-05-06 2 views
0

각 요청을 스팬 세션을 열 HttpModule 사용하고 게으른로드 및 모든 위대한 작동합니다.Asp.net WebForms Nhibernate - 요청 당 세션

내 관심사는 요청 당 새 세션을 열고 HttpContext.Current.Items에 저장하므로 .css 파일 및 이미지 요청을 포함하여 모든 요청에 ​​대해서도 세션을 엽니 다. 세션 생성은 꽤 가벼운 작업이지만 (트랜잭션에 대해서는 모르겠다) 어쨌든 .css 파일 요청에 대한 세션을 열 필요가없는 것으로 보았습니다.

누구나 이것에 대한 아이디어가 있습니다. 문제가 있습니까? 아니면 바보 같은 짓을하고 있습니까? 사전에

감사

+0

당신은 HttpHandler가 아니라 HttpHandler를 의미합니까? –

+0

당신은 당연한 것입니다, 대답은 지금 편집됩니다. 감사합니다 – jmw

답변

8
  • 파일 형식에서 .aspx 또는 .ASHX 경우에만 세션 객체를 생성 :

    switch (context.Request.CurrentExecutionFilePathExtension.ToLower()) 
        { 
         case ".aspx": 
         case ".ashx": 
          context.Items[ContextKey] = CreateMySession(); 
          break; 
        } 
    
  • 또는 속성 게터 내부 세션 생성을 캡슐화하고, 클린업 확인 여부를 확인하십시오 session != null

+0

고마워 내 처리기에 추가하고 그것이 작동하는 것 같습니다. – jmw

+0

모든 요청 (aspx/ashx 당)에 대해 Nhib 트랜잭션을 시작하는 것이 얼마나 비쌉니까? 모든 요청에 ​​대해 트랜잭션을 수행 할 수 있습니까? 필요할 때 명시 적으로 트랜잭션을 열어야합니까? – jmw

관련 문제