ASP.NET Core 세션 공급자 구성
구성하려면 NCache ASP.NET Core 세션 관리 서비스를 위한 세션 제공자를 수정하여 앱 설정.json 그런 다음 필요에 따라 애플리케이션에 미들웨어를 추가합니다.
사전 조건
- 애플리케이션에 다음 NuGet 패키지를 설치합니다. ASP를 구성하려면.NET Core 귀하의 세션 공급자에 따라 NCache 버전 :
- 기업 : AspNetCore.세션.NCache.
- 직업적인: AspNetCore.세션.NCache.전문적인
- 오픈소스: AspNetCore.세션.NCache.오픈소스
- 확장을 활용하려면 애플리케이션에 다음 네임스페이스를 포함하십시오. Startup.cs:
- 캐시가 실행 중이어야 합니다.
- API 세부 정보는 다음을 참조하세요. 추가NCache세션.
- 추가되는 데이터가 직렬화 가능.
- 작업이 안전하도록 하려면 에 설명된 대로 응용 프로그램 내에서 잠재적인 예외를 처리하는 것이 좋습니다. 처리 실패.
- 보이지 않는 예외를 처리하려면 다음을 참조하십시오. 문제해결 안내
1 단계 : 구성 NCache 세션 관리 서비스
세션 관리 서비스는 다음에서 초기화해야 합니다. Startup.cs. 구성을 지정하는 방법에는 두 가지가 있습니다.
- 귀하의 신청서를 통해 Startup.cs or
- JSON 형식으로 앱 설정.json
주의 사항
구성에는 항상 캐시 이름이 포함되어야 합니다.
방법 1: Startup.cs에서 구성 지정
세션은 다음을 통해 초기화될 수 있습니다. AddNCacheSession
다음을 사용하는 확장 메서드 IOptions<NCacheSessionConfiguration>
개체를 구성으로 사용합니다.
In Startup.cs 애플리케이션의 ConfigureServices
방법:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container with configured session
services.AddNCacheSession(configuration =>
{
configuration.CacheName = "demoCache";
configuration.EnableLogs = true;
configuration.SessionAppId = "demoApp";
configuration.SessionOptions.IdleTimeout = 5;
configuration.SessionOptions.CookieName = "AspNetCore.Session";
});
}
방법 2: Appsettings.json에서 구성 지정
서비스 구성은 JSON 형식의 섹션으로 제공될 수도 있습니다. 앱 설정.json ASP.NET 응용 프로그램의:
{
"NCacheSettings": {
"SessionAppId": "demoApp",
"SessionOptions": {
"CookieName": "AspNetCore.Session",
"CookieDomain": null,
"CookiePath": "/",
"CookieHttpOnly": "True",
"IdleTimeout": "5",
"CookieSecure": "None",
"useJsonSerialization": true,
"WriteExceptionsToEventLog": true,
},
"CacheName": "demoCache",
"EnableLogs": "True",
"RequestTimeout": "90"
},
}
주의 사항
사용하지 않는 것이 좋습니다 WriteExceptionsToEventLog
태그를 지정하세요 생산 환경을 제공합니다.
NCache 제공 AddNCacheSession
세션 서비스를 컨테이너에 추가하기 전에 외부 파일에서 구성을 초기화하는 메서드입니다. 이 방법을 사용하면 JSON 형식 구성이 포함된 섹션의 이름을 제공하여 구성을 참조할 수 있습니다. 앱 설정.json:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container
services.AddNCacheSession(Configuration.GetSection("NCacheSettings"));
}
2단계: 애플리케이션에 미들웨어 추가
서비스가 초기화되면 이제 미들웨어를 추가하여 HTTPS 요청 파이프라인을 구성할 수 있습니다. Configure
방법. 다음은 UseNCacheSession
확장 방법 IApplicationBuilder
. 그만큼 NCache 세션 미들웨어는 항상 세션을 활용하는 계층보다 먼저 쌓여야 합니다.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseNCacheSession(); // store NCache session data
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=myApp}/{action=Index}/{id?}");
});
}
이제 계속 진행할 수 있습니다. 사용 NCache 기본 캐시로 당신의 ASP를 위해.NET Core 세션.
구성 속성
에서 제공하는 구성 옵션 NCache 아래에 설명되어 있습니다.
회원 | 타입 | 상품 설명 | 기본값 |
---|---|---|---|
CacheName |
string (필수) |
캐싱 세션에 사용할 캐시 이름을 지정합니다. 캐시 이름을 지정하지 않으면 구성 예외가 발생합니다. | - |
EmptySessionWhenLocked |
bool (선택 사항) |
이후에 잠긴 경우 빈 세션을 반환해야 하는지 여부를 지정합니다. sessionLockingRetry 개수가 초과되었습니다. |
false |
EnableSessionLocking |
bool (선택 사항) |
이 플래그가 설정되면 NCache 세션 관리는 여러 동시 요청이 이루어진 세션 저장소 항목을 독점적으로 잠급니다. | false |
EnableLogs |
bool (선택 사항) |
이 플래그가 설정되면 NCache 모든 오류 정보를 기록합니다. 로그 파일은 다음 위치에 생성됩니다. %NCHOME%\log-files\SessionState (Windows) 또는 /opt/ncache/log-files/SessionState (리눅스). |
false |
EnableDetailLogs |
bool (선택 사항) |
이 플래그가 설정되면 NCache 모든 디버깅 정보를 기록합니다. 로그 파일은 다음 위치에 생성됩니다. %NCHOME%\log-files\SessionState (Windows) 또는 /opt/ncache/log-files/SessionState (리눅스). |
false |
ExceptionsEnabled |
bool (선택 사항) |
캐시 API의 예외가 페이지 출력에 전파되는지 여부를 지정합니다. 예외는 특정 실패 원인에 대한 추가 정보를 제공하므로 이 플래그를 설정하는 것은 애플리케이션 개발 단계에서 특히 유용합니다. | false |
OperationRetry |
int (선택 사항) |
작업이 실행되는 동안 서버와의 연결이 끊어진 경우 서버가 작업을 다시 시도하는 횟수를 지정합니다. | 0 (영) |
OperationRetryInterval |
int (선택 사항) |
서버와의 연결이 끊어진 경우 각 작업을 다시 시도하는 시간 간격을 지정합니다. | 0 (영) |
ReadOnlyFlag |
string (선택 사항) |
에 지정된 경우 HttpContext.Items 세션 미들웨어 이전에는 커밋되지 않는 읽기 전용 세션을 반환합니다. 이 세션은 잠금이 없습니다. |
NCache.AspNetCore.IsReadOnly |
RequestTimeout |
int (선택 사항) |
이 간격 동안 세션이 해제되지 않은 경우 세션이 강제로 잠금 해제되는 시간 간격(초)을 지정합니다. | 120 |
SessionAppId |
string (선택 사항) |
여러 애플리케이션이 동일한 세션을 사용하는 경우 세션 ID가 고유하게 유지되도록 식별자를 지정합니다. 웹 팜의 애플리케이션에 대한 애플리케이션 ID는 동일해야 합니다. 앱 ID가 지정되지 않으면 세션 ID와 아무 것도 연결되지 않습니다. | - |
SessionLockingRetry |
int (선택 사항) |
If enableSessionLocking 는 참이고 이 정수는 0보다 작지 않습니다. NCache 세션 저장소 공급자는 다음 후 빈 세션을 반환합니다. sessionLockingRetry , 잠금을 획득하기 위한 재시도 횟수를 지정합니다. |
-1 |
SessionOptions |
SessionOptions |
.NET Core-쿠키 정보와 같은 세션을 구성하는 특정 클래스입니다. 다음을 참조하세요. API 문서 자세한 내용은. | - |
WriteExceptionsToEventLog |
bool (선택 사항) |
이 플래그가 설정되면 캐시 API의 모든 예외가 이벤트 로그에 기록됩니다. | false |
usejsonserialization |
bool |
이것은 부울 속성입니다. ASP에 JSON 직렬화를 사용하려는 경우.NET Core 세션 개체, 이 속성의 값을 다음과 같이 설정합니다. true . |
false |
도 참조
.그물: Alachisoft.NCache.Web.SessionState 네임 스페이스.