2010-12-02 2 views
0

IIS 6.0이 설치된 ASP.NET에서 웹 가든을 고수하고 있습니다. 여러 소스 (Source1Source2)는 InProc 세션이 웹 가든과 잘 어울리지 않는 방법을 설명합니다. 그것을 증명할 프로그램을 만들었지 만 결과를 설명하기가 어렵습니다. 제 테스트 결과를 설명해주십시오.

테스트
IIS에서 최대 작업자 프로세스 수를 1000으로 설정했습니다. 세션에 문자열을 저장하고 버튼 클릭으로 값을 검색하는 웹 앱을 만듭니다. IE, FF 및 Blackberry 브라우저에서 웹 앱을 실행하십시오.

결과
IE은 : 일반적으로 제대로 세션을 가져옵니다. 웹 사이트를 ~ 3 분 동안 유휴 상태로두면 세션이 실패했습니다.
FF : never 거의 실패하지 않았습니다. 앉아서 ~ 15 분 후에 세션이 실패했습니다.
BB : 규칙적으로 실패합니다. 비율은 Source2가 말하는 것과 일치합니다. 정원의 작업자 프로세스 수가 많을수록 세션 실패 가능성이 높아집니다.

내 해석
FF/IE/데스크탑 브라우저는 수도가 더 나은 캐싱 할 수 있습니다 더 많은 메모리를 가지고있다.웹 가든이 InProc 세션과 잘 어울리지 않는다는 증명

메모
IE를 설정하면 방문 할 때마다 새로운 버전의 페이지를 확인하도록 설정하지 않아도됩니다. Blackberry의 포스트 백이 w3wp.exe의 새로운 인스턴스를 만드는 것을 보장하지만 IE/FF의 포스트 백과 동일한 w3wp.exe 프로세스의 Mem 사용이 증가한다는 사실에 주목하십시오.

+0

브라우저가 세션 상태에 아무런 영향을주지 않을 것으로 예상됩니다. 브라우저가 다르게 동작하는지 확인 하시겠습니까? 그 세션에 대한 어떤 증거가 실패 했습니까? – n8wrl

+0

그 이유는 문자열이 세션에 없다는 것입니다. 따라서 TextBox에 세션 데이터를 채우려고 할 때 객체 참조가 객체 인스턴스로 설정되지 않습니다. –

+0

페이지와 함께 브라우저로 전송되는 캐시 정책은 무엇입니까? 캐시 정책이있는 페이지를 반복적으로 방문하면 매번 서버로 이동하지 않습니다. 사실 그것은 세션이 살아있는 것처럼 보일 수도 있습니다. – n8wrl

답변

2

브라우저에 더 많은 메모리가 있다는 사실은 InProc 세션 및 웹 가든이 서버 측 인 구성 요소와 관련이 없어야합니다.

작업자 프로세스 수가 많을수록 요청이 동일한 작업자 프로세스에 의해 처리 될 가능성이 적기 때문에 더 많은 문제가 발생합니다. 즉, 하나의 작업자 프로세스 만있는 경우 1 : 1의 기회가 주어지면 두 번째 요청에서 동일한 작업자 프로세스로 돌아갑니다. 2 개의 작업자 프로세스가있는 경우 1 : 2의 기회가 주어지며, 3 명의 작업자 프로세스가있는 경우 3 개의 기회가 1 번 발생합니다.

왜 InProc 세션을 사용하려고하는지 궁금합니다. 아주 쉽게 사라질 수있는 좋은 이유가 거의 없습니다. 이 기사를 참조하십시오. http://www.west-wind.com/Weblog/posts/1986.aspx

+0

포인트는 서버 측 구성 요소에서 취해진 것입니다. 여전히 브라우저를 기반으로 한 결과의 큰 차이를 설명하지 못합니다. 내 게시물에 링크 된 기사는 이미 비율을 설명하므로 수업은 필요하지 않습니다. MS는 ASP.NET에서 InProc을 기본값으로 사용하기 때문에 신뢰성이 높다고 신뢰하지만 그 점은 중요합니다. 실제 테스트 결과에 대한 설명을 찾고 있습니다. –

+0

MS는 최상의 성능을 발휘하기 때문에 inProc을 기본값으로 사용합니다. 그들은 농장 및 확장성에 대한 모든 세션 상태에 대해 반복적으로 경고합니다. – n8wrl

+0

@ n8wrl 동의 함. 나는 그 사실을 일관성으로 증명하거나 웹 가든의 관점에서 불일치를 설명하기 만하면됩니다. –

관련 문제