2012-09-02 3 views
0

세션에 숫자 콘텐츠가 3 개 있지만 snippet을 3 개로 만들었지 만 3시에 수신하면 클라이언트에 전송합니다.이 세션은 세션이 끝날 때까지 1 분 내에 종료되어야합니다. 세션이 만료되어 새로운 세션을 만들 때 제대로 작동하지 않는 시간을 프로그램에서 처리하지 못하면 system.invalidoperationexception을 얻습니다. 내 코드?이전 세션 시간 초과 후 세션 만들기

string ip = HttpContext.Current.Request.UserHostAddress; 


      HttpContext failuser = HttpContext.Current; 
      failuser.Session.Timeout =1; 
      if (failuser != null) 
      { 
       if (failuser.Session[ip] != null) 
        failuser.Session[ip] = (int)failuser.Session[ip] + 1; 
       else 
        failuser.Session[ip] = 1; 

       // 
       retval = failuser.Session[ip].ToString(); 
       if ((int)failuser.Session[ip] > 2) 
       { 

        retval = "!"; 

       } 
+0

어디에서 예외가 발생합니까? 내 말은 당신이이 예외가있는 위치의 코드를 디버깅했을 때 말입니다. –

+0

답장을 보내 주셔서 감사합니다;이 코드는 jquery ajax 메서드 인 – quantum62

+0

에서 호출하여 webmethod에 있습니다. 코드를 디버깅 했습니까? –

답변

0

세션 상태가 만료 된 후에도 유지할 수 없습니다.
세션 시간 초과 1 분은 매우 작습니다. 5 분 정도 더 높게 유지하십시오.

세션을 시간 초과 후 상태로 복원하는 대신 시간 초과가 허용되지 않는 것이 훨씬 쉽습니다.

이미 WebMethods를 사용하고 있으므로 만료되기 직전에 게시하여 세션의 수명을 연장 할 수 있습니다. (사용자가 비활성 상태 인 경우 30 분 후에 절대 시간 제한을 설정하십시오.)

+0

나는 세션이 긴 인생을 보내고 싶지 않아. 내 문제는 그것입니다 : 나는 새로운 sesion을 만들 때 내가 system.invalidoperationexception을 얻고 싶으면 adress bar를 선택하고 새로운 세션을 새로 고친다. 그러나 window.location.reload()를 사용하여 클라이언트 측에서 새로 고친 문제를 해결할 수있다. – quantum62

+0

내가 무슨 일이 일어 났는지 알기를 원한다면 브라우저에서 편리하게 다시로드 할 수 있습니다. 문제가 있지만 reload 나 history.go (0)와 같은 메소드를 사용할 때 문제가 남아 있습니다. – quantum62