ASP.NET 세션 상태 공급자 속성
ASP.NET 세션 저장 NCache 프로그래밍이 필요하지 않습니다. NCache 이 서비스는 사용자 정의 라이브러리를 통해 고성능 및 확장 가능한 ASP.NET 세션 상태 공급자를 제공합니다. SessionStateStoreProviderBase ASP.NET 애플리케이션용 구현입니다. 주요 기능으로는 세션 잠금, JSON 직렬화, 설정 가능한 재시도 횟수, 저장된 세션 데이터를 볼 수 있는 기능 등이 있습니다. GetByTag애플리케이션에서 ASP.NET 세션을 구성하고 가져오려면 다음과 같이 수정하십시오.
ASP.NET 세션 상태 태그 수정
애플리케이션 수정 웹.구성 파일 및 수정 <sessionState> 아래 그림과 같이 섹션을 참조하십시오.
<configuration>
...
<sessionState cookieless="false"
regenerateExpiredSessionId="true"
mode="Custom"
customProvider="NCacheSessionProvider"
timeout="20">
<providers>
<add name="NCacheSessionProvider"
type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider"
cacheName="demoCache"
sessionAppId="demoApp"
useInProc="false"
enableLogs="false"
exceptionsEnabled="true"
writeExceptionsToEventLog="false"
AsyncSession="false"
enableSessionLocking="true"
sessionLockingRetry="-1"
emptySessionWhenLocked="false" />
</providers>
</sessionState>
...
</configuration>
웹 팜용 MachineKey 태그 수정
웹팜의 경우 <machineKey> 아래에 태그 <system.web> 이 섹션을 참조하세요. 이렇게 하면 모든 노드에서 ASP.NET 세션 ID가 동일한 방식으로 생성됩니다. 웹 팜용 머신 키 생성 방법에 대해 알아보세요. 웹 팜용 머신 키 생성(IIS 7)
<machineKey validationKey ="A01D6E0D1A5D2A22E0854CA612FE5C5EC4AECF24"
decryptionKey ="ACD8EBF87C4C8937" validation ="SHA1"/>
세션 객체 직렬화
사용을 시작하기 전에 NCache ASP.NET 세션 객체를 저장하고 검색할 때, 이러한 객체를 캐시에 직접 저장할 수 없다는 점에 유의하십시오. 세션 객체를 캐시에 저장하려면 먼저 직렬화해야 합니다. 세션 객체를 직렬화하는 데 사용할 수 있는 다양한 방법이 있으며, 그 방법은 다음과 같습니다.
이진 직렬화
애플리케이션의 소스 코드에 액세스할 수 있는 경우 이 직렬화 방법을 사용할 수 있습니다. 이 경우 모든 개체(캐시 내부에 저장하려는 개체)를 직렬화 가능으로 표시해야 합니다.
주의 사항
그러나 이 방법은 .NET 6.0에서 더 이상 사용되지 않으며 ASP.NET 응용 프로그램 내에서 이진 직렬화 또는 압축 직렬화를 사용하는 경우 사용자에게 적절하게 알리는 예외가 발생합니다.
NCache 컴팩트 직렬화
이진 직렬화의 대안으로 다음을 사용할 수 있습니다. NCache 컴팩트 직렬화 세션 개체를 직렬화합니다. 더 빠르고 소스 코드를 수정하는 대신 구성 파일만 수정하면 됩니다.
이 방법의 유일한 문제점은 직렬화하려는 클래스 수가 많은 경우 구성 변경이 커질 수 있다는 것입니다.
JSON 직렬화
위에 언급된 직렬화 기법 중 어느 것도 요구 사항을 충족하지 못하는 경우 JSON 직렬화를 선택할 수 있습니다. 이 방법은 매우 빠르고 간단하며, 단 하나의 변경만 필요합니다. 웹.구성 파일을 저장하고 나머지 작업은 다음에 의해 수행됩니다. NCache 런타임에.
의 값을 설정하기만 하면 됩니다. useJsonSerialization True로 플래그를 지정합니다. 기본적으로 이 플래그의 값은 False입니다.
세션 데이터 가져오기
NCache 클러스터링된 캐시에 저장된 모든 세션 데이터를 볼 수 있습니다. NCache 세션 상태 모듈. 모든 세션 데이터는 태그가 지정된 캐시 항목으로 태그와 함께 지정된 캐시에 추가됩니다. NC_ASP.NET_session_data.
이전에 저장된 세션 데이터는 다음을 통해 가져올 수 있습니다. GetByTag 캐시에 저장된 세션 ID 및 관련 세션 데이터로 채워진 사전을 반환하는 API.
var allSessionData = cache.SearchService.GetByTag(new Tag("NC_ASP.NET_session_data"));
세션 상태 속성
다음은 위에 명시된 키-값 쌍에 대한 설명입니다.
| 회원 | 기술설명 |
|---|---|
sessionAppId |
선택사항입니다 string 여러 애플리케이션이 동일한 캐시를 사용하는 경우 세션 ID가 고유하게 유지되도록 식별자를 지정하는 속성입니다. 애플리케이션 ID는 웹 팜의 애플리케이션에 대해 동일해야 합니다. 앱 ID가 지정되지 않으면 세션 ID와 연결된 것이 없습니다. |
cacheName |
이는 필수 사항입니다. String 캐싱 세션에 사용될 캐시의 이름을 지정하는 속성입니다. 캐시 이름을 지정하지 않으면 구성 예외가 발생합니다. |
enableSessionLocking |
선택 사항 Boolean 속성. 이 플래그가 True로 설정된 경우 NCache 세션 스토어 공급자는 여러 동시 요청이 이루어지는 세션 스토어 항목을 독점적으로 잠급니다. 기본값은 False입니다. |
sessionLockingRetry |
이것은 선택 사항입니다 Integer 기인하다. 만약에 enableSessionLocking 참이고 이 정수는 0보다 작지 않습니다. NCache 세션 저장소 공급자는 다음 후 빈 세션을 반환합니다. sessionLockingRetry, 잠금을 획득하기 위한 재시도 횟수를 지정합니다. 기본값은 -1입니다. |
writeExceptionsToEventLog |
선택 사항 Boolean 속성입니다. 이 플래그를 True로 설정하면 캐시 API에서 발생하는 모든 예외가 이벤트 로그에 기록됩니다. 기본값은 False입니다. |
enableLogs |
선택사항입니다 Boolean 속성. 이 플래그가 True로 설정되면 스토어 공급자가 모든 오류 정보를 기록합니다. 로그 파일은 다음에 생성됩니다. %NCHOME%\log-files\SessionStoreProvider (Windows) 또는 /opt/ncache/log-files/SessionStoreProvider (Linux). 기본값은 False입니다. |
enableDetailLogs |
선택 사항 Boolean 속성. 이 플래그가 True로 설정되면 스토어 공급자가 모든 디버깅 정보를 기록합니다. 로그 파일은 다음에 생성됩니다. %NCHOME%\log-files\SessionStoreProvider (Windows) 또는 /opt/ncache/log-files/SessionStoreProvider (Linux). 기본값은 False입니다. |
exceptionsEnabled |
이것은 선택 사항입니다 Boolean 캐시 API에서 발생하는 예외를 페이지 출력에 반영할지 여부를 지정하는 속성입니다. 예외를 통해 실패 원인에 대한 자세한 정보를 얻을 수 있으므로, 이 플래그를 True로 설정하면 애플리케이션 개발 단계에서 특히 유용합니다. 기본값은 False입니다. |
operationRetry |
이 값은 작업 실행 중에 서버와의 연결이 끊어졌을 경우 서버가 해당 작업을 재시도할 횟수를 지정합니다. 기본값은 다음과 같습니다. 0(제로). |
operationRetryInterval |
서버와의 연결이 끊어진 경우 각 작업 재시도 사이의 시간 간격을 지정합니다. 기본값은 다음과 같습니다. 0(제로). |