문제

세션에 의존하지 않지만 Postbacks 간의 지속성을 위해 Viewstate에 의존하는 ASPX 페이지가 있다고 가정 해 봅시다.

사용자 가이 페이지에 액세스하고 긴 점심 식사를 위해 떠나면 ViewState가 돌아올 때 여전히 유효합니까?

도움이 되었습니까?

해결책

Postback 프로세스의 일부로 ViewState는 보관되지 않습니다. 그러나 당신은 할 수 있습니다. 우세하다 원하는 경우 해당 동작을 구현하기 위해 페이지 클래스의 SavePagestAtePersistEncemedium () 및 LoadPagestateFrompersistEncemedium (). 자세한 내용은 읽으십시오 ASP.NET ViewState 이해.

주목하십시오 페이지 ViewState는 세션에 저장되므로 세션이 만료되면 ViewState가 손실됩니다. 나는 이것이 ViewState 만료라고 말하지는 않지만, 세션 타임 아웃 후에는 파괴 될 것입니다.

다른 팁

ViewState 자체는 만료되지 않습니다. 양식으로 다시 게시되므로 언제든지 재구성 할 수 있습니다.

MSDN에 따르면: "... 세션 만료 시간 내에 페이지가 다시 게시되지 않으면 뷰 상태가 만료 될 수 있습니다.". 따라서 일종의 라운드에서 세션이 만약이라면 만료 될 수 있지만 ViewState는 직접 만료되지 않습니다. 어쨌든 세션 상태를 사용하지 않기 때문에 암시 적 만료에 대해 걱정할 필요가 없습니다.

나는 그것이 만료되었다고 말하지 않았을 것입니다. 그것은 내가 자신의 기사에서 인용 한 MS였습니다. ViewState 제어

ViewState는 만료되지 않습니다.

모든 ViewState 데이터는 클라이언트에 저장되며 사용자가 PostBack을 실행할 때 서버로 다시 제출됩니다.

이것은 매우 흥미로운 영향을 미치며 매우 철저하게 설명됩니다. 여기.

또한 GOTCHA로서 기본적으로 ASP.NET은 자율적 키로 ViewState를 암호화합니다. Web.congif 파일의 MachineKey 요소로 재정의 할 수 있습니다. ViewState는 만료되지 않더라도 IIS 재설정 후 ViewState를 해독하는 데 다른 자동 생성 키가 사용되면 무효가 될 수 있습니다. ViewState를 오랜 시간 동안 저장할 계획이라면 암호화/암호 해독 된 방법을 확인하십시오.

http://msdn.microsoft.com/en-us/library/ms998288.aspx

예, ViewState는 특정 조건에서 만료됩니다. 예를 들어 iframe : s를 사용하거나 일반 포스트 백으로 서버에 대한 "라이브"연결을 유지하는 경우. 그런 다음이 옵션을 조사 할 수 있습니다. <sessionPageState historySize="9"/>, 실제로 하드 코드는 세션에 몇 개의 "포스트 백 결과"가 저장되는 수 (SessionPagestatePerster가 사용되는 경우). 각 Postback은 세션에서 큐의 끝까지 뷰 스테이트를 저장하고 [ "__ viewstatequeue"], "너무 오래된"ViewStates를 삭제합니다. 그리고 SessionPagestatePerster는 viewstates가 너무 오래된 것을 결정하는 방법을 어떻게 생각하십니까? Web.config .. OMG에서 임의의 역사 크기가 구성된 일부를 구성함으로써! 이 문제를 찾는 것도 영원히 ... ASP.NET 프로그래밍에 대한 나의 증오가 지금은 설명 할 수 없습니다 .. Grrr ...

ViewState는 여전히 페이지에있는 한 만료되지 않습니다. 여전히 존재하고 기능적입니다.

ViewState는 게시물에서 우편으로 지속됩니다. 그것은 실제로 당신의 양식의 숨겨진 필드 안에 저장되어 항상 서버에 다시 게시되도록합니다.

세션에 의존하지 않는 한 페이지 상태를 재건하는 데 아무런 문제가 없어야합니다. 원하는 경우 페이지의 상태 코드를 쉽게 테스트 할 수 있습니다. Web.config에서 60 초 후 만료되도록 세션을 만료 한 다음 페이지를로드하고 잠시 조금만 기다리십시오 (서핑 오버 플로우로 넘어 가서 몇 가지 질문에 답하십시오). 그런 다음 페이지의 버튼을 클릭하십시오.

이 오래된 스레드를 재현해서 죄송하지만 이제 새로운 정보를 사용할 수 있습니다.

예, ViewStates가 만료됩니다. 나는 19 시간 동안 뷰 스테이트의 문제에 대해 조사하여 오랜 시간 간격 포스트 백 사이에서 그 값을 잃어 버렸습니다. MSDN 문서를 읽는 시간이 걸렸고 StackOverFlow 답변은 사용자 정의 뷰 스테이트 스토리지 구현이 사용되지 않는 한 기본적으로 발생하는 것이 불가능하다고 말합니다. 이제는 사실이 아닙니다.

내 문제는 SharePoint 2013 환경에서 발생했습니다. 알려진 서비스 분산 캐시 (일명 AppFabric) viewstate의 캐싱을 수행하고 살 시간 그것과 관련이 있습니다. 자세한 내용은 다음을 참조하십시오.http://blogs.msdn.com/b/besidethepoint/archive/2013/03/27/appfabric-caching-andsharepoint-1.aspx

흥미로운 정보는이 문구에서 찾을 수 있습니다."SharePoint 2013에서 시작하여 SharePoint는 클라이언트로 전송하는 대신 SharePoint를 캐시합니다.

이 정보가 19 시간 전과 마찬가지로 누군가가 절망적으로 도움이되기를 바랍니다.

ViewState는 페이지 자체의 숨겨진 필드에 보관됩니다. 사용자가 페이지를 가지고있는 한 뷰 스테이트가 있습니다. 그러나 앱이 일정 시간 후에 사용자를 자동으로 로그인하면 여전히 viewstate가 그에게 좋지 않을 수 있습니다.

기본적으로 ViewState는 HTML 컨텐츠에 숨겨진 입력으로 포함됩니다. 즉, 만료되지는 않지만 ViewState의 모든 것이 사용자의 브라우저에서 업로드되어야합니다. 그것은 일반적으로 공개 사이트에서 연결의 가장 느린 부분이므로 ViewState에 많은 물건을 넣으면 사이트가 매우 느리게 보일 수 있습니다.

짧은 대답은 다음과 같습니다.

더 긴 대답은 다음과 같습니다. ViewState 스토리지의 구현에 따라 다릅니다. 주어진 시간 후에 만료 될 수있는 ViewState의 사용자 정의 구현을 제공 할 수 있습니다. 예를 들어, ViewState를 데이터베이스 또는 디스크에 저장하고 숨겨진 필드에서 저장된 값에 대한 참조 만 보낼 수 있습니다. 그런 다음 배치 처리를 사용하여 구식 뷰 스테이트 데이터를 제거하거나 요청시 만료를 수행 할 수 있습니다.

viewstate는 만료되지 않습니다. 다른 페이지로 리디렉션 한 후에는 view state의 가치가 손실되거나 만료됩니다. 자세한 내용은 http://www.c-sharpcorner.com/uploadfile/78d182/asp-net-state-management-techniques/

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