2008-10-01 3 views
1

우리 서버에서 번 이상 발생하는 이상한 문제가 있습니다. 일반적으로 하나 이상의 웹 응용 프로그램이 업그레이드 될 때 발생합니다. 우리가 나중에 실행 코드에서 세션에서 방금 ​​찍은 세션에서 물건을 찾을 수 없습니다. (가끔만 사용합니다)

  • 을 객체를 넣어

    • ASP.NET 응용 프로그램에서 (동일한 요청 : 문제를 디버깅하는 것은 나에게 여기까지 ... 요청을 처리하는 동안

      을 얻었다) 우리는 같은 세션 값을 찾는다. 비 었어요!

    세션 서비스가 작동하지 않는 것 같습니다. 맞습니까? 이 코드는 하루 수백 번 실행되며 웹 서버에서 웹 응용 프로그램을 업그레이드하는 것과 관련된 개발 환경이나 생산 상황에서는 실패하지 않습니다.

    이상한 점 : 우리는 상황을 고치는 올바른 방법을별로 좋아하지 않았습니다. IIS 리셋, ASP.NET 상태 서버 중지/시작, web.config 편집 및 서버 재부팅도 모든 빈을 사용합니다. 일반적으로이를 수정하고 청력을 높이고 청력을 많이 발휘할 수있는 조합이 필요합니다. 그리고 대부분의 경우 즉시 수정되지 않지만, 아마도 2 ~ 3 분 후에 세 번째 IIS 재설정 또는 뭐든간에. (결국 결국 그것을 고쳐 줄 수는 없을 것입니다.)

    나는 여기서 미쳤어. 어떤 아이디어가 문제 일 수 있습니까? 그것은 마이크로 소프트 버그입니까?

    일부 추가 정보를 원하시면 :

    • 우리는 우리는 ASP.NET 상태 서비스
    • 코드 세션 변수를 액세스하고 다시 널 얻기를 사용하는 .NET 2.0
    • 에서 실행하고있는가에 어셈블리는 ASP.NET 응용 프로그램에서 참조합니다. 세션에서 HttpContect.Current를 사용하여
  • +0

    웹 응용 프로그램을 업그레이드한다고 할 때 .Net의 최신 버전으로 전환하거나 웹 응용 프로그램의 새 버전을 출시 하시겠습니까? – Raelshark

    답변

    0

    세션 변수를 사용하지 않을 수 있습니까?

    동일한 세션에서 데이터가 필요한 경우 세션 변수를 사용하는 것보다 훨씬 가벼운 HttpContext.Items를 사용할 수 있습니다.

    질문에 대답 : 처음 액세스 할 때 세션이 아직 생성되지 않았을 수 있습니다. 존재하지 않으면 예외를 throw합니다.

    If Not IsNothing(Context.Session) Then 
        'do something 
    end if 
    
    +0

    아니요, 세션이 있으며 변수를 받아들입니다. 검색하려고 할 때만 사라집니다. 세션이 필요합니다. 99,999 %의 시간 동안 작동합니다. –

    2

    HttpContext.Items에 대한

    확인 그래서 고려 될 필요가 있음을 요청하지 전체 세션의 수명 기간 동안 만 사용할 수 있습니다.

    원래의 질문에 대답하기 위해

    , 당신은 세션에 항목을 추가 할 때

    1. 당신은 다음 줄에 성공적으로 검색 수 있습니까?

    2. 서버와 관련이 있습니까? 즉한 서버는 세션의 값을 볼 수 있지만 다른 세션은 볼 수 없습니까?

    3. 변수에 액세스하려고하는 DLL , .e.g을 위해 거기에 모든 플랫폼 대상의 차이가있다. .net 1.1 vs .net 2.0?

    +0

    포인트 1 - 그 다음 시도가 될 것입니다. 포인트 2 - 이해하지 못한다. 모든 것이 실제로 단일 서버에서 실행됩니다. 포인트 3 - 모든 것이 컴파일되어 있어야하고 .net 2.0에서 실행되어야합니다. –

    +0

    나는 당신이 1 번에서 제안한 것을 테스트 할 수있었습니다. 그리고 실제로 작동 했으므로 세션이 완전히 끝나지 않았습니다. 낯선 사람과 낯선 사람 ... –

    관련 문제