2009-10-08 4 views
0

그래서 내 viewstate 내 ASP.net 아약스 응용 프로그램, http 압축, 숨겨진 필드에서 viewstate 해제 최소화하기 위해 최선을 다했지만 더 가고 싶습니다. 그래서 연구 후에는 두 가지 방법asp.net 서버 쪽 viewstate없이 세션

A) LoadPageStateFromPersistenceMedium

B를 사용하는 ASP.net 1.x의 방법)을 사용 또는 ASP.net 2.x에서의 방법을 사용 SessionPageStatePersister 그래서

가있는 것 같다 B가 잘 보이지 않는 이유는 올바르게 이해하면 viewstate가 세션 ID에 연결되고 내 세션이 여러 가지 이유로 만료 될 수 있기 때문에 원하는 것이 아니기 때문입니다.

그럼 세션에 의존하는 서버에 viewstate를 저장하는 가장 좋은 방법은 무엇입니까?

LoadPageStateFromPersistenceMedium이고 숨겨진 필드를 사용하는 경우 숨겨진 필드를 페이지에 임의의 ID로 삽입하려면 어떻게해야합니까?

서버에서 viewstate 파일을 지울 시간을 어떻게 결정합니까?

+1

상태를 최소화하려면 ASP.NET MVC를 고려 했습니까? –

답변

0

나는 세션 옵션을 심각하게 고려해야한다고 생각한다. 리소스에 최적이며 Auth 메커니즘이 세션 시간 초과로 할당 된 경우 세션이 만료 되더라도 문제는 아닙니다.

http://professionalaspnet.com/archive/2006/12/09/Move-the-ViewState-to-Session-and-eliminate-page-bloat.aspx

는 대체로서 당신은, viewstate가에 세션 ID를두고 다시 게시를 확인하는 페이지 기반을 구현할 수 있으며 다른 있다면 복구하는 몇 가지 조치가보다.

유일한 옵션은 DB 또는 다른 데이터 저장소를 사용하는 자신의 PageAdapter를 만드는 것입니다.

+0

우리는 폼 인증을 사용하므로 세션 타임 아웃에 맞춰진 것으로 생각하지 않습니다. 당신은 자신의 FileSystemPageStatePersister 클래스를 만들어 http://aspnet.4guysfromrolla.com/articles/011707-1.aspx 이 접근 방식에 대해 어떻게 생각하십니까. 예를 들어 웹 팜에서 더 잘 작동한다고 생각하십니까? – Tuviah

+0

세션 지속성을 위해 SQL Server를 사용하거나 단일 컴퓨터에서 서비스를 사용하면 웹 팜에서 완벽하게 작동합니다. –

+0

또 다른 문제는 세션이 기본적으로 20 분 후에 만료된다는 것입니다. 물론 우리는 그것을 확장 할 수 있지만 더 많은 메모리를 취할 것입니다 .. 또한 사용자가 앞뒤로 여러 번 클릭하거나 브라우저간에 전환하거나 쿠키를 제거하는 데 문제가 있습니다. guid를 생성하고, 페이지의 숨겨진 필드에 연결 한 다음 guid를 키로 사용하여 데이터베이스 또는 파일에 viewstate를 저장하는 자체 PageStatePersister를 작성할 수 있음을 읽었습니다. 이 방법이 더 나은 방법일까요? – Tuviah