2011-09-01 6 views
1

이것은 오늘 갑자기 나타 났으며 매우 이상합니다. 우리는 변화가 있었지만 이전에 효과가 있었는지 파악할 수 없습니다.ASP.Net 다시 게시간에 세션을 지우시겠습니까?

기본적으로 정적 속성과 세션과 관련된 메소드를 보유하는 "ProjectSession"클래스가 있습니다.
주된 것은 ProjectSession.ProjectId이고 이는 HttpContext.Current.Session["ProjectID"]의 래퍼 일뿐입니다. 새 프로젝트가 생성되면이 속성에 ID가 설정됩니다. 사용자가 이미 프로젝트가있는 경우 페이지로드 if (!IsPostBack)에 값을 설정합니다. 아주 간단합니다.

그러나 오늘 우리는 갑자기이 값이 세션에서 사라지는 것을보기 시작했습니다. 실제로 전체 세션 객체가 지워집니다. 사이트의 첫 번째 페이지에서 사용자가 프로젝트를 가지고 있으면 값을 설정합니다. 그런 다음 첫 번째 버튼 클릭시 값을 확인하고 null입니다.

오늘 우리가 작업 한 모든 코드가이 문제에 영향을 미치지 않는 것으로 보입니다. 사실 모든 것이 로컬 컴퓨터가 아닌 프로덕션 서버에서 제대로 작동합니다.

아무도 아이디어가 있으면 알려 주시기 바랍니다.

p.s. -> 우리는 두 배, 세 배, 네 배를 확인했습니다. ProjectSession =이라고하는 코드 0 줄과 ProjectSession.ProjectID =이라고하는 정확히 2 줄의 코드가 있으며이 질문에서 언급 한 2 줄입니다.

+0

여러 개의 w3wp 프로세스를 실행하고 있습니까? 그렇다면 상태 서버 또는 데이터베이스를 사용하여 세션을 보유하고 있습니까? –

+0

응용 프로그램 풀을 재활용 할 수 있습니다. 재활용 할 수 있습니까? – bryanmac

+0

우리의 로컬 컴퓨터에서 그냥 기본 "Cassinni"서버를 사용하고 있습니다. (나는 그것이 Visual Studio가 자동으로 실행되는 것으로 생각합니다) 이러한 상황 중 하나가 적용되지 않는다고 생각합니다. –

답변

2

Cassinni는 항상 "응용 프로그램 풀"(IIS와 동일하지 않음)을 재설정합니다. 가능한 한 프로덕션에 가까운 환경에서 테스트를 수행해야합니다. 맨 처음 최소한으로 IIS를 사용하는 것이 좋습니다. 해결해야 할 중요한 버그 인 경우 IIS를 사용하는 것이 좋습니다.

2

대답은 누군가가 우리의 Web.Config 파일에 다음 행을 추가한다는 것입니다 : 우리는 우리가 크로스 사이트 스크립팅 (XSS)을 수행하려고했던 것을 국부적으로 일할 때 <httpCookies domain="THEPUBLICSITE" />

그래서 서버가 생각했다.

관련 문제