2011-11-07 4 views
1

Session에 작은 값을 저장할 수 있다는 것을 알고 있습니다.얼마나 많은 메모리가 세션 변수에 할당됩니까?

최근 Visual Studio ASP.NET 응용 프로그램에서 DataTable과 같은 더 큰 값을 저장할 수도 있다는 것을 알게되었습니다.

이렇게하면 Session에 저장할 수있는 저장 용량이 궁금합니다. 이것은 브라우저 또는 PC의 RAM에 의존합니까?

답변

2

ASP.NET 세션은 웹 사이트를 호스팅하는 웹 서버에 저장됩니다. 따라서 제한은 클라이언트 PC의 브라우저 나 RAM이 아닌 웹 서버의 RAM 용량입니다. 따라서 사이트에 4 명의 사용자가 있고 각각 128MB의 세션이있는 경우 웹 서버에 ASP.NET 전용 512MB 이상의 RAM이 있어야합니다.

세션 중에 많은 것을 저장하는 것에 대해서도 매우주의해야합니다. 특히 DataTable과 같은 복잡한 유형입니다. 이는 해당 객체에 액세스 할 때마다 직렬화/역 직렬화가 필요하며 이는 웹 서버의 CPU에 과도하게 부담이 될 수 있기 때문입니다.

일부는 best practices for ASP.NET Session에서 읽는 것이 좋습니다.

+0

오! 내가 물었던 좋은 물건. 링크도 가져 주셔서 감사합니다. – jp2code

+0

또 다른 upvote에 대한 빠른 후속 조치 : 나는 (장바구니를 생각하면) 행을 추가하려고하는'DataTable'을 가지고 있지만,'DataTable'을 코드 뒤에 선언하면, 테스트 할 때마다 * * ADD ** 버튼을 사용하여 데이터에 다른 행을 추가하면 'DataTable'은 ** NULL **이됩니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까? – jp2code

+1

동일한 ASP.NET 페이지에서 DataTable 개체를 만들고 액세스하는 경우 ViewState에 저장할 수 있습니다. ViewState는 페이지에 저장되므로 DataTable의 크기가 크게 커지면 페이지로드가 크게 늘어날 수 있습니다. 너무 크지 않은 경우 ViewState 컬렉션을 통해 코드 뒤에 액세스 할 수 있습니다 (구문은 Session과 유사 함). – ptfaulkner

관련 문제