오늘날 ASP.NET은 수백만 명의 사용자를 처리해야 하고 부하가 분산된 웹 팜에 배포되는 트래픽이 많은 웹 응용 프로그램에 널리 사용됩니다. ASP.NET의 중요한 부분 중 하나는 많은 응용 프로그램에서 사용하는 보기 상태입니다. ASP.NET View State 클라이언트와 웹 서버의 여러 HTTP 요청 간에 페이지, 컨트롤 및 사용자 지정 값을 저장하는 매우 강력한 메커니즘입니다.
ASP.NET View State 값은 페이지의 숨겨진 필드에 저장되고 Base64 문자열로 인코딩됩니다. 안 ASP.NET View State 다음과 같이 보입니다.
1 2 3 |
<input id="__VIEWSTATE" type="hidden" name="__VIEWSTATE" value="/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kF…" /> |
매우 유용하지만, ASP.NET View State 특히 ASP.NET 응용 프로그램에 페이지에 그리드 컨트롤과 기타 여러 컨트롤이 있는 상황에서 자주 크기가 상당히 커집니다. 이것은 HTTP 요청 및 응답에 추가되며 ASP.NET 응답 시간을 참을 수 없을 정도로 느리게 만듭니다.
무거움의 또 다른 단점 ASP.NET View State 대역폭 비용을 상당히 증가시키는 증가된 대역폭 사용량입니다. 예를 들어 각 HTTP 요청에 대해 60-100k의 추가 ASP.NET View State 데이터에 총 트랜잭션 수를 곱하기만 하면 대역폭 소비에서 얼마나 더 많은 비용이 드는지 금방 알 수 있습니다.
마지막으로 일부 상황에서는 기밀 데이터를 전송하는 데 보안 위험이 있습니다. ASP.NET View State. 보내기 전에 암호화하는 것도 비용이 많이 듭니다.
이러한 모든 문제를 해결하려면 캐시할 수 있습니다. ASP.NET View State 웹 서버에서 GUID를 캐시의 키로 할당합니다. 그런 다음 이 GUID는 숨겨진 필드에 있는 브라우저로 전송되고 다음 HTTP 요청과 함께 반환되며 해당 항목을 가져오는 데 사용됩니다. ASP.NET View State 캐시에서. 이렇게 하면 브라우저로 전송되는 페이로드가 줄어들어 ASP.NET 응답 시간이 향상될 뿐만 아니라 대역폭 소비 비용도 크게 줄어듭니다.
ASP.NET 응용 프로그램이 부하 분산된 웹 팜에서 실행 중인 경우 분산 캐시를 사용해야 합니다. ASP.NET 캐시와 같은 독립 실행형 캐시는 작동하지 않습니다. NCache 제공하는 엔터프라이즈급 분산 캐시입니다. ASP.NET View State 캐싱 모듈. 그것을 사용하기 위해 프로그래밍을 할 필요가 없습니다. ASP.NET web.config를 수정하기만 하면 됩니다.
사용 단계는 다음과 같습니다. NCache 캐싱을 위해 ASP.NET View State:
- ASP.NET 응용 프로그램에서 app.browser 파일을 만듭니다. App_browsers 디렉터리 아래에 만듭니다. 다음과 같이 app.browser 파일에 페이지 어댑터를 연결합니다.
123456<browser refID="Default"><controlAdapters><adapter controlType="System.Web.UI.Page"adapterType="Alachisoft.NCache.Adapters.PageAdapter"/></controlAdapters></browser> - 그런 다음 web.config 파일의 컴파일 섹션에 다음 어셈블리 참조를 추가합니다.
1234567<compilation defaultLanguage="C#" debug="true"><assemblies><add assembly="Alachisoft.NCache.Adapters,Version=1.0.0.0,Culture=neutral,PublicKeyToken=cff5926ed6a53769"/></assemblies></compilation> - web.config 파일에 구성 섹션을 등록합니다.
12345678910<configSections><sectionGroup name="ncContentOptimization"><section name="settings"type="Alachisoft.NCache.ContentOptimization.Configurations.ContentSettings"allowLocation="true" allowDefinition="Everywhere"/></sectionGroup></configSections> - 위에서 등록한 web.config 파일의 구성 섹션에 대한 설정을 지정합니다.
1234567891011<ncContentOptimization><settings enableMinification="true"enableViewstateCaching="true"groupedViewStateWithSessions="true"viewstateThreshold="0"enableTrace="true"><cacheSettings cacheName="mycache"><expiration type="Sliding" duration="300"/></cacheSettings></settings></ncContentOptimization> - 마지막으로 다음과 같이 web.config의 HttpHandlers 섹션에 HTTP 처리기를 등록합니다.
1234567<add verb="GET,HEAD" path="NCResource.axd"validate="false"type="Alachisoft.NCache.Adapters.ContentOptimization.ResourceHandler,Alachisoft.NCache.Adapters, Version=1.0.0.0,Culture=neutral,PublicKeyToken=cff5926ed6a53769"/>
구성 후 NCache, 당신은 볼 수 있습니다 ASP.NET View State 애플리케이션에 다음과 같이 태그를 지정합니다.
1 2 3 4 5 6 7 |
< input type="hidden" name="__NCPVIEWSTATE" id="__NCPVIEWSTATE" value="vs:cf8c8d3927ad4c1a84da7f891bb89185" /> < input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="" /> |
다른 숨겨진 태그가 ASP.NET View State. 에 할당된 고유 키를 포함합니다. ASP.NET View State 페이지의 분산 캐시에 있습니다. 따라서 애플리케이션 서버가 필요할 때마다 ASP.NET View State 값은 캐시에서 쉽게 가져올 수 있습니다.
이를 통해 ASP.NET 응답 시간에서 현저한 성능 향상을 볼 수 있으며 대역폭 소비 비용도 크게 줄어듭니다.
에 대해 자세히 알아보십시오. ASP.NET View State 시도하여 캐싱 NCache ASP.NET View State 스스로 모듈화하십시오.
당신이 사용할 수 NCache Microsoft Azure ASP.NET 애플리케이션용 ASP.NET 세션 상태를 저장하기 위한 Azure용. 다음은 Microsoft Azure 세션 저장소 옵션과 그 이유를 설명하는 블로그입니다. NCache for Azure는 Microsoft Azure에서 사용 가능한 모든 옵션 중에서 가장 좋습니다.
https://20.200.20.123:86/storing-asp-net-session-state-in-a-microsoft-azure-distributed-cache/
세션 상태를 처리하기 위해 Windows Azure 캐싱(미리 보기)을 성공적으로 사용하는 사람이 있습니까?