문제

오늘 저는 ASP.NET의 HTTPapplicationState와 관련된 두 가지 문제와 혼동되었습니다. 내 질문은 다음과 같습니다

  1. 세션 관리에 Stateserver를 사용하는 경우 (웹 정원 배포에 사용하려는 Out Proc 세션 관리 제품) httPapplicationState (시스템을 통해 액세스 중입니다 .Web.ui.Page.application 속성)도 StatesErver 내부에 저장됩니다. 세션처럼? 따라서 내 작업장 프로세스가 페이지에 "10"값을 쓴 경우, Application에, 나중에 WorkerProcess B에서 실행되는 또 다른 요청은 나중에 동일한 키에 대해이 "10"을 봐야합니까?

  2. 동료 개발자 중 한 명이 자신의 테스트에서 Stateserver 시나리오에서 발견했다고 말했습니다. 페이지에 100 개의 키 값 항목이 삽입 된 경우 Session에서 다른 요청에서 키를 읽으려고 할 때 WorkerProcess는 전체 100 개의 항목을 활성 작업장 프로세스 메모리 공간에 가져오고 실제로는 키를 제공합니다. 요청에 따라 요청했습니다. 사실인가요?

누군가가 이와 관련하여 내 혼란을 제거하는 데 도움을 줄 수 있다면 대단히 감사 할 것입니다.

감사!

도움이 되었습니까?

해결책

  1. Stateserver는 세션 상태 만 지원하며 응용 프로그램 상태는 AppDomain으로 제한됩니다.

  2. Stateserver는 세션의 직렬화를 저장합니다. 특정 키 값에 어떻게 액세스하는지 알 수있는 방법이 없습니다. 액세스하면 세션이 필요한 응용 프로그램으로 재화화되며 요청 기간 동안 일반 세션 데이터로 사용됩니다.

다른 팁

  1. 내가 아는 한, 프로세스 외부 상태 서버는 HTTPapplicationState 데이터를 저장하지 않습니다. 당신은 이것을 쉽게 테스트 할 수 있지만, 나는 그것이 의심됩니다.

  2. 나는 이것이 사실이라고 생각하지 않습니다. 세션 상점은 기본적으로 해시 가능입니다. 해시 테이블에서 단일 키를 찾으면 관련 값 만 반환해야합니다. 당신은 당신이 묘사 한 행동을 보지 않아야합니다. 다시, 당신은 이것을 쉽게 테스트 할 수 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top