ASP.NET 세션 상태 공급자 속성
ASP.NET 세션 저장 NCache 프로그래밍이 필요하지 않습니다. NCache ASP.NET 세션 상태 공급자는 사용자 지정입니다. SessionStateStoreProviderBase
ASP.NET 응용 프로그램 구현. 응용 프로그램에서 ASP.NET 세션을 구성하고 가져오려면 다음과 같은 수정이 필요합니다.
주의 사항
이 기능은 다음에서도 사용할 수 있습니다. NCache Professional.
ASP.NET 세션 상태 전제 조건
- 다음 NuGet 패키지를 애플리케이션에 설치하십시오. NCache 버전 :
- 캐시가 실행 중이어야 합니다.
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"
useJsonSerialization="false"
enableLogs="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 기인하다. 이 플래그가 설정되면 NCache 세션 저장소 공급자는 여러 동시 요청이 이루어진 세션 저장소 항목을 독점적으로 잠급니다. 기본값은 거짓입니다. |
sessionLockingRetry |
이것은 선택 사항입니다 Integer 기인하다. 만약에 enableSessionLocking 참이고 이 정수는 0보다 작지 않습니다. NCache 세션 저장소 공급자는 다음 후 빈 세션을 반환합니다. sessionLockingRetry , 잠금을 획득하기 위한 재시도 횟수를 지정합니다. 기본값은 -1입니다. |
writeExceptionsToEventLog |
선택 사항 Boolean 기인하다. 이 플래그가 설정되면 캐시 API의 모든 예외가 이벤트 로그에 기록됩니다. 기본값은 거짓입니다. |
enableLogs |
선택사항입니다 Boolean 기인하다. 이 플래그가 설정되면 저장소 공급자는 모든 오류 정보를 기록합니다. 로그 파일은 다음에 생성됩니다. %NCHOME%\log-files\SessionStoreProvider (Windows) 또는 /opt/ncache/log-files/SessionStoreProvider (리눅스). 기본값은 거짓입니다. |
enableDetailLogs |
선택 사항 Boolean 기인하다. 이 플래그가 설정되면 저장소 공급자는 모든 디버깅 정보를 기록합니다. 로그 파일은 다음에 생성됩니다. %NCHOME%\log-files\SessionStoreProvider (Windows) 또는 /opt/ncache/log-files/SessionStoreProvider (리눅스). 기본값은 거짓입니다. |
exceptionsEnabled |
이것은 선택 사항입니다 Boolean 캐시 API의 예외가 페이지 출력에 전파되는지 여부를 지정하는 속성입니다. 이 플래그를 True로 설정하면 예외가 특정 실패 원인에 대한 추가 정보를 제공하므로 애플리케이션 개발 단계에서 특히 유용합니다. 기본값은 거짓입니다. |
operationRetry |
작업이 실행되는 동안 서버와의 연결이 끊어진 경우 서버가 작업을 다시 시도하는 횟수를 지정합니다. 기본값은 다음과 같습니다. 0 (제로). |
operationRetryInterval |
서버와의 연결이 끊어진 경우 각 작업 재시도 사이의 시간 간격을 지정합니다. 기본값은 다음과 같습니다. 0 (제로). |
usejsonserialization |
이는 부울 속성입니다. ASP.NET 세션 개체에 대해 JSON 직렬화를 사용하려면 이 특성의 값을 True로 설정하세요. 기본적으로 이 속성의 값은 False입니다. |
도 참조
.그물: Alachisoft.NCache.Web.SessionState 네임 스페이스.