• Facebook
  • 트위터
  • 유튜브
  • 라인드인
  • RSS
  • 기술 문서
  • 비교
  • 블로그
  • 다운로드
  • 문의하기
다운로드
목차 표시/숨기기

ASP.NET Core 세션 공급자 구성

NNCache ASP.NET Core용 효과적인 분산 세션 공급자로서, 로드 밸런싱된 웹 팜에서 메모리 내 세션 사용의 제약을 극복할 수 있도록 해줍니다. NCache 세션 상태를 분산 캐시로 오프로드하면 기존 세션 로직을 수정하지 않고도 영속성, 고가용성 및 선형 확장성을 보장할 수 있습니다. 구성하려면 NCache ASP.NET Core 세션 관리 서비스용 세션 공급자를 사용하려면 아래 설명된 대로 관련 파일을 수정하고 필요한 경우 애플리케이션에 미들웨어를 추가해야 합니다.

사전 조건

사용하기 전에 NCache ASP.NET Core 세션을 사용하려면 다음 필수 조건을 충족해야 합니다.

  • . NET
  • ASP.NET Core 세션 공급자를 구성하려면 다음 NuGet 패키지를 애플리케이션에 설치하세요. NCache 판:
    • 기업 : AspNetCore.세션.NCache
    • 오픈소스: AspNetCore.세션.NCache오픈소스
  • 확장을 활용하려면 애플리케이션에 다음 네임스페이스를 포함하십시오. 프로그램.cs 적절한 경우:
    • Alachisoft.NCache.웹.세션 상태;
  • 캐시가 실행 중이어야 합니다.
  • 추가되는 데이터가 직렬화 가능.
  • API 세부 정보는 다음을 참조하세요. 추가NCache세션.

구성 방법 NCache .NET 6.0 이상 버전의 세션 공급자

당신이 .NET 6.0 또는 해당 버전 이상을 응용프로그램에 적용하려면 아래 단계를 따르세요.

1단계: 세션 관리 서비스를 초기화하는 방법은 무엇입니까?

세션 관리 서비스는 다음에서 초기화해야 합니다. 프로그램.cs. 구성을 지정하는 방법에는 두 가지가 있습니다.

  1. 귀하의 신청서를 통해 프로그램.cs.
  2. JSON 형식으로 앱 설정.json.
주의 사항

구성에는 항상 캐시 이름이 포함되어야 합니다.

방법 1: *Program.cs 파일에서 구성 지정*

세션은 다음을 통해 초기화될 수 있습니다. AddNCacheSession 귀하의 확장 방법 프로그램.cs 아래와 같이 파일:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container
builder.Services.AddControllersWithViews();

// Set up MVC Services
builder.Services.AddMvc();

// Configure NCache Session State
builder.Services.AddNCacheSession(options =>
{
      options.CacheName = "demoCache";
      options.EnableLogs = true;
      options.SessionAddId = "demoApp";
      options.SessionOptions.IdleTimeout = 5;
      options.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",
      "WriteExceptionsToEventLog": true,
    },

    "CacheName": "demoCache",
    "EnableLogs": "True",
    "RequestTimeout": "90"
  },
}
주의 사항

사용하지 않는 것이 좋습니다 WriteExceptionsToEventLog 태그를 지정하세요 생산 환경을 제공합니다.

NCache 제공 AddNCacheSession 설정하기 NCache 구성의 설정을 사용하여 세션 관리를 위한 세션 싱크로서, builder.Services 재산:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container
builder.Services.AddControllersWithViews();

// Set up MVC Services
builder.Services.AddMvc();

// Get the NCache settings from configuration
builder.Services.AddNCacheSession(builder.Configuration.GetSection("NCacheSettings"));

2단계: 어디에 놓을 것인가 NCache 미들웨어?

서비스를 초기화한 후 필요한 경우 미들웨어를 추가하여 HTTPS 요청 파이프라인을 구성할 수 있습니다. 아래는 미들웨어를 사용하여 미들웨어를 포함하는 방법을 보여주는 예입니다. UseNCacheSession 확장 방법 IApplicationBuilder. 배치하는 것이 중요합니다. NCache 세션 데이터에 의존하는 모든 계층보다 먼저 세션 미들웨어가 사용됩니다.

var builder = WebApplication.CreateBuilder(args);

try
{
    var app = builder.Build();

    // Configure the HTTP request pipeline
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    try
    {
        app.UseNCacheSession(); // Ensure NCache session is used
    }
    catch (Exception ex)
    {
        // Log and optionally fallback
        Console.WriteLine($"NCache Session initialization failed: {ex.Message}");
        // Optionally: continue without session or rethrow
        throw;
    }

    app.UseRouting();
    app.UseAuthorization();

    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");

    app.Run();
}
catch (Exception ex)
{
    // Critical startup failure
    Console.WriteLine($"Application failed to start: {ex.Message}");
    throw;
}

이제 계속 사용할 수 있습니다. ASP.NET Core 세션 NCache.

구성 속성

에서 제공하는 구성 옵션 NCache 아래에 설명되어 있습니다.

회원 타입 기술설명 기본값
캐시 이름 문자열(필수) 캐싱 세션에 사용할 캐시 이름을 지정합니다. 캐시 이름을 지정하지 않으면 구성 예외가 발생합니다. -
EmptySessionWhenLocked bool (선택 사항) 이후에 잠긴 경우 빈 세션을 반환해야 하는지 여부를 지정합니다. sessionLockingRetry 개수가 초과되었습니다. 그릇된
세션 잠금 활성화 bool (선택 사항) 이 플래그가 설정되면 NCache 세션 관리는 여러 동시 요청이 이루어진 세션 저장소 항목을 독점적으로 잠급니다. 그릇된
로그 활성화 bool (선택 사항) 이 플래그가 설정되면 NCache 모든 오류 정보를 기록합니다. 로그 파일은 다음 위치에 생성됩니다. %NCHOME%\log-files\SessionState (Windows) 또는 /opt/ncache/log-files/SessionState (리눅스). 그릇된
세부 로그 활성화 bool (선택 사항) 이 플래그가 설정되면 NCache 모든 디버깅 정보를 기록합니다. 로그 파일은 다음 위치에 생성됩니다. %NCHOME%\log-files\SessionState (Windows) 또는 /opt/ncache/log-files/SessionState (리눅스). 그릇된
예외 활성화 bool (선택 사항) 캐시 API의 예외가 페이지 출력에 전파되는지 여부를 지정합니다. 예외는 특정 실패 원인에 대한 추가 정보를 제공하므로 이 플래그를 설정하는 것은 애플리케이션 개발 단계에서 특히 유용합니다. 그릇된
작업 재시도 int (선택 사항) 작업이 실행되는 동안 서버와의 연결이 끊어진 경우 서버가 작업을 다시 시도하는 횟수를 지정합니다. 0 (영)
작업 재시도 간격 int (선택 사항) 서버와의 연결이 끊어진 경우 각 작업을 다시 시도하는 시간 간격을 지정합니다. 0 (영)
읽기 전용 플래그 문자열(선택사항) 에 지정된 경우 HttpContext.Items 세션 미들웨어 이전에는 커밋되지 않는 읽기 전용 세션을 반환합니다. 이 세션은 잠금이 없습니다. NCache.AspNetCore.읽기 전용
요청 시간 초과 int (선택 사항) 이 간격 동안 세션이 해제되지 않은 경우 세션이 강제로 잠금 해제되는 시간 간격(초)을 지정합니다. 120
세션 앱 ID 문자열(선택사항) 여러 애플리케이션이 동일한 세션을 사용하는 경우 세션 ID가 고유하게 유지되도록 식별자를 지정합니다. 웹 팜의 애플리케이션에 대한 애플리케이션 ID는 동일해야 합니다. 앱 ID가 지정되지 않으면 세션 ID와 아무 것도 연결되지 않습니다. -
세션 잠금 재시도 int (선택 사항) If enableSessionLocking 는 참이고 이 정수는 0보다 작지 않습니다. NCache 세션 저장소 공급자는 다음 후 빈 세션을 반환합니다. sessionLockingRetry, 잠금을 획득하기 위한 재시도 횟수를 지정합니다. -1
세션 옵션 세션 옵션 쿠키 정보와 같은 세션 구성을 위한 .NET Core 전용 클래스입니다. 자세한 내용은 다음을 참조하세요. API 문서 자세한 내용은. -
이벤트 로그 쓰기 예외 bool (선택 사항) 이 플래그가 설정되면 캐시 API의 모든 예외가 이벤트 로그에 기록됩니다. 그릇된

도 참조

.그물: Alachisoft.NCache.Web.SessionState 네임 스페이스.

문의하기

전화

+1 214-619-2601   (미국)

+44 20 7993 8327   (UK)

 
이메일

sales@alachisoft.com

support@alachisoft.com

NCache
  • 판 비교
  • NCache 아키텍처
  • 벤치 마크
다운로드
가격
놀이터를 사용해보십시오

배포
  • 클라우드(SaaS 및 소프트웨어)
  • 온 프레미스
  • Kubernetes
  • 도커
기술 사용 사례
  • ASP.NET 세션
  • ASP.NET 코어 세션
  • 게시/구독 메시징
  • 실시간 ASP.NET SignalR
  • 사물의 인터넷 IOT ()
  • NoSQL 데이터베이스
  • 스트림 처리
  • 마이크로 서비스
리소스
  • 잡지 기사
  • 제XNUMX자 기사
  • 기사
  • 비디오
  • 백서
  • 쇼
  • 회담
  • 블로그
  • 기술 문서
고객 사례 연구
  • 환자 후기
  • 고객
고객 지원
  • 데모 예약
  • 포럼(Google 그룹스)
  • Tips
회사
  • Leadership
  • 파트너
  • ​뉴스
  • 이벤트
  • 채용 정보
문의하기

  • 영어중국어 (간체)프랑스어독일 사람이탈리아 사람일본제한국어포르투갈어스페인어

  • 문의하기
  •  
  • 사이트 맵
  •  
  • 이용 약관
  •  
  • 개인정보 처리방침
© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.
맨 위로