ASP.NET 성능 최적화를 위한 보기 상태 캐싱

ASP.NET View State 클라이언트 쪽 상태 관리 메커니즘을 제공하는 ASP.NET의 강력한 기능입니다. 클라이언트 요청에 대한 완전한 왕복 간에 페이지 및 제어 값을 보존하는 데 도움이 됩니다. 이것은 HTTP와 같은 상태 비저장 프로토콜을 통해 상태 전체 프로그래밍 기능을 제공합니다.

ASP.NET View State 클라이언트에 보내는 모든 응답의 일부로 인코딩된 Base64 문자열로 페이지의 숨겨진 필드에 저장되고 포스트백의 일부로 클라이언트에 의해 서버에 반환됩니다.

<input id = "__VIEWSTATE"
       type = "hidden"
       name = "__VIEWSTATE"
       value = "/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9kFgICBQ9kFgJmD2QWAgIBD
              xYCHhNQcm2aW91c0NvbnRyb2xNb2RlCymIAU1pY3Jvc29mdC5TaGFyZVBvaW50Lld
              lYkNvbnRyb2xzLlNQQ29udHJbE1vZDA1XzRlMjJfODM3Y19kOWQ1ZTc2YmY1M2IPD
              2…=="/>

매우 유용하지만, ASP.NET View State 이해하고 해결해야 하는 몇 가지 문제가 있습니다. 아래에서 설명합니다.

  1. ASP.NET View State 종종 무겁습니다: ASP.NET 응용 프로그램의 페이지에 풍부하고 무거운 컨트롤과 위젯이 있는 경우 많은 데이터가 브라우저와 웹 서버 간에 이동합니다. 이 무거운 페이로드는 ASP.NET 응용 프로그램의 성능 저하와 높은 대역폭 비용을 초래합니다.
  2. ASP.NET View State 보안 위험: 또한 보기 상태의 일부로 기밀 데이터를 클라이언트에 보낼 때 보안 위험을 초래할 수 있습니다. 이 데이터는 공격에 취약하며 심각한 보안 위협인 공격자에 의해 변조될 수 있습니다. 암호화할 수 있습니다 ASP.NET View State 그러나 이것은 다시 성능 비용이 발생합니다.

NCache for ASP.NET View State

해결할 수 있는 한 가지 방법 ASP.NET View State 문제는 실제 ASP.NET View State 웹 서버에서 고유한 토큰(또는 ID)을 브라우저에 전송하여 브라우저가 다음에 이 토큰을 웹 서버로 다시 보낼 수 있도록 합니다. 그런 다음 웹 서버는 이 토큰을 사용하여 권한을 찾습니다. ASP.NET View State 그 가게에서. 다음은 토큰 대신 사용되는 토큰의 예입니다. ASP.NET View State.

<input type = "hidden"
       name = "__VIEWSTATE"
       id = "__VIEWSTATE"
       value = "vs:cf8c8d3927ad4c1a84da7f891bb89185" />

이기는하지만 ASP.NET View State 웹 서버에 저장할 수 있지만 다음 HTTP 요청이 다른 웹 서버로 올 수 있으므로 ASP.NET 응용 프로그램이 부하 분산 웹 팜에서 실행 중인 경우에는 이상적이지 않습니다. 따라서 보관해야 합니다. ASP.NET View State 모든 웹 서버에서 액세스할 수 있는 공유 저장소에 있습니다.

보관하기 가장 좋은 곳 ASP.NET View State 서버에서 분산 캐시. 이렇게 하면 모든 웹 서버에 대한 공통 저장소를 가질 수 있을 뿐만 아니라 빠르고 확장 가능한 인메모리 저장소 SQL Server 데이터베이스 또는 기타 스토리지 옵션과 비교하여

분산 캐시 저장 ASP.NET View State - NCache
그림 1: 분산 캐시 저장 ASP.NET View State

NCache .NET/용으로 매우 빠르고 확장 가능한 분산 캐시입니다..NET Core, 자바 및 Node.js. 그것은 또한 당신이 저장할 수 있습니다 ASP.NET View State 위에서 설명한 문제를 해결합니다.

ASP.NET ViewState 구성 NCache

구성하려면 ASP.NET View State 당신은 설치해야합니다 AspNet.ViewState.NCache NuGet 패키지 전제 조건으로. 그럼 당신은해야합니다 App_browser 파일 구성 과 NCache 플러그 페이지 어댑터 및 web.config 파일 구성 애플리케이션에서 View State에 대한 구성 섹션을 등록하고 등록된 구성 섹션에 대한 설정을 지정합니다. 참조 NCache ASP.NET View State 문서 단계별 구성을 위해.

뷰 상태 캐싱 및 기타 데이터에 동일한 캐시가 사용되는 경우 다음을 수행할 수 있습니다. 보기 상태 데이터 가져오기 사용하여 NC_ASP.net_viewstate_data 다음과 같이 태그:

Hashtable allViewStateData = cache.GetByTag(new Tag("NC_ASP.net_viewstate_data"));

캐싱의 이점 ASP.NET View State 서버에서

캐싱을 통해 다음과 같은 이점을 얻을 수 있습니다. ASP.NET View State in NCache.

  1. ASP.NET 성능 향상: NCache 전체 요청 시간을 개선하는 요청/응답 페이로드를 줄입니다.
  2. 대역폭 비용 절감: 페이로드가 작을수록 대역폭 소비 비용도 크게 줄어듭니다. 이렇게 하면 많은 돈을 절약할 수 있습니다.
  3. 보안 : 이제 그 ASP.NET View State 인코딩된 문자열이 브라우저로 전송되지 않으므로 더 이상 보안 위험이 없습니다.
  4. 빠르고 확장 가능 ASP.NET View State 스토리지 : NCache 매우 빠르고 확장 가능한 분산 캐시입니다. 이는 ASP.NET이 다음으로 인해 확장성 병목 현상에 직면하지 않는다는 것을 의미합니다. ASP.NET View State 저장.
  5. ASP.NET View State 복제를 통한 신뢰성: NCache 분산 캐시의 모든 데이터를 지능적으로 복제합니다. 이것은 당신이 아무것도 잃지 않는다는 것을 의미합니다 ASP.NET View State 캐시 서버가 다운되더라도.

Advnaced ASP.NET View State 캐싱 기능 NCache

NCache 캐싱 및 관리를 위한 다양한 기능을 제공합니다. ASP.NET View State. 아래는 그 목록입니다.

  1. 최소 크기 임계값: NCache 당신은 할 수 있습니다 최소 크기 지정 ASP.NET View State. 이보다 작은 뷰 상태는 캐시되지 않습니다. 이를 통해 무거운 뷰 상태만 캐시할 수 있습니다.
  2. (링크) ASP.NET View State 세션 상태: 여러분의 시간과 재능으로 연결하다 ASP.NET View State 세션 상태. 이렇게 하면 사용자 세션이 만료되면 해당 사용자의 모든 보기 상태가 자동으로 캐시에서 제거됩니다.
  3. 페이지 수준 최대 개수 임계값: FIFO 방식으로 주어진 페이지에 대해 얼마나 많은 보기 상태를 유지해야 하는지 구성할 수 있습니다. 이렇게 하면 이 페이지에 대해 새 보기 상태가 생성될 때마다 가장 오래된 보기 상태가 제거됩니다. 이렇게 하면 절대 필요하지 않은 뷰 상태를 캐싱하지 않음으로써 캐시 서버의 메모리 소비를 최적화합니다.
  4. 세션 수준 최대 수 임계값: 페이지 수준과 유사하게 다음을 수행할 수 있습니다. 사용자 세션에 대한 최대 보기 상태 수 지정 FIFO 방식으로 maxViewStatesPerSession. 이렇게 하면 새 보기 상태가 생성될 때마다 가장 오래된 보기 상태가 제거됩니다.
  5. 페이지 수준 및 세션 수준 설정: 위의 모든 설정을 페이지마다 다르게 지정하거나 모든 세션에 공통으로 유지할 수 있습니다.

요약

보시다시피 NCache 캐시할 수 있습니다. ASP.NET View State 서버에서 ASP.NET 성능을 최적화합니다. 추가적으로, NCache 관리를 위한 다양한 기능을 제공합니다. ASP.NET View State 캐시에서 더 효율적입니다. 이를 통해 복잡한 응용 프로그램을 개발하고 이러한 기능을 사용하여 다양한 시나리오를 처리할 수 있습니다.

다음에 무엇을할지?

© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.