2012-09-25 3 views
0

이상한 상황을 관찰하고 있으며 누군가에게 통찰력이 있기를 바랍니다. 그것은 이상적인 상황이 아닙니다 (레거시 물건을 지원하려고 노력합니다). 내가 관찰 한 내용은 다음 예에서 설명합니다.로드 균형 조정을 사용하는 HttpContext.Current.Session

부하 분산 서버 풀에 하나의 서버가 있습니다. 로드 균형 조정 된 URL에서로드 된 외부 페이지에서 일부 값을 Page_Load의 HttpContext.Current.Session에 채워 넣습니다.

해당 페이지에서 특정 페이지 URL (로드 균형 조정 페이지가 방문한 서버)에서 내부 페이지를로드하는 iframe입니다. 내부 페이지의 Page_Load에있는 HttpContext.Current.Session에는 외부 페이지에서 채운 값이 없습니다.

나는 사용자의 쿠키에있는 것이 무엇이든 기계마다 다를 것이라고 생각했습니다. HttpContext.Current.Session은 URL에 의존합니까?

답변

1

여기에는 많은 요소가 있습니다. 먼저 동일한 컴퓨터에서 URL을로드하고 있는지 확인하십시오. iframe은 클라이언트 기반이며 서버 기반이 아닙니다. 이는 iframe이 다른 페이지를로드 할 때 동일한 페이지 (고정 세션 등)에 머물러 있도록하는 메커니즘이없는 한로드 밸런서를 통과하는 것을 의미합니다.

둘째, 동일한 도메인 이름을 사용하는 iframe에 사용중인 URL이 있습니까? 둘 다 동일한 전송 (http 또는 https)을 사용하고 있습니까? 이들 중 하나가 다른 경우 iframe에 대한 새 세션이 만들어집니다.

+0

Yup, 외부 페이지는 실제로 끝난 실제 서버를 인식하고 해당 서버의 URL을 iframe 소스에 씁니다. 또한 디버깅을 위해 풀에 하나의 서버 만 있습니다. –

+0

그러나로드 균형 조정 된 URL은 다른 하위 도메인을 사용합니다. 그것은 별도의 세션이 될 것입니까? –

+0

예, 아주 잘 될 수 있습니다. 그러나 세션 쿠키 도메인이'mydomain.com'보다는'.mydomain.com'과 같은지 확인하면됩니다. –

관련 문제