SessionPageStatePersister
을 기반으로 자신의 PageStatePersister
클래스를 작성하여 공유 디스크에 가장 최근의 1Viewstate
을 기록합니다. 나는 모든 웹 서버가 그것에 접근 할 수 있기 때문에 세션에서 Viewstate
을 유지하는 것보다 더 잘 확장 될 것이라고 생각한다. 그들은 만료를 다룰 필요가 없으며 더 적은 메모리를 사용한다.플랫 파일의 viewstate와 SQLserver의 viewstate
사용자가 브라우저를 닫으면 서버에 알리고 서버는 2 시간 동안 액세스하지 않은 파일을 삭제합니다. 지금까지는 그렇게 좋았지 만 SQL 서버 데이터베이스에 Viewstate
을 저장하는 것이 더 빠르고 더 효율적인지 궁금합니다.
- 각
ViewState
파일의 평균 크기는 30k입니다. - 현재 숨겨진 필드를 읽고 Viewstate 키를 가져 와서 파일에 직접 액세스하고 deserialize합니다. 정렬하거나 검색 할 필요가 없습니다.
- 시간당 약 2000 명의 동시 사용자가 있으며 최근 20 개의 Viewstate 세션을 저장하면 시간당 약 20,000 개의 임시보기 파일이 저장됩니다.
- 정기적으로 파일을 반복하고 가장 오래된 파일을 삭제해야합니다.
그래서이 경우에는 더있는하십시오 플랫 파일 시스템 또는 데이터베이스?
당신은 "모든 웹 서버가 뷰티 스테이트에 액세스 할 수 있기 때문에 뷰 스테이트를 유지하는 것보다 확장 성이 좋을 것"이라고 언급했습니다. viewstate가 세션에서 유지된다는 것은 무엇을 의미합니까? 당신이 명시 적으로 원하는 것입니까? viewstate 데이터를 클라이언트의 브라우저가 아닌 서버에 저장하려면? –
yep viewstate가 서버에 있어야합니다. – Tuviah