설치
Doconut을 .NET 8 프로젝트에 추가
.NET 8용 기본 Doconut 뷰어는 모든 ASP.NET Core 애플리케이션에 연결되는 하나의 NuGet 패키지로 제공됩니다. 선택적 플러그인은 별도의 패키지를 사용합니다. 이 페이지에서는 기본 패키지를 설치하고 미들웨어를 등록합니다 — 첫 렌더링 전에 필요한 최소 구성입니다.
패키지 설치
dotnet add package Doconut.NET8버전이 지정되지 않은 명령은 최신 안정 버전을 설치합니다. 현재 26.7.0 릴리스를 정확히 재현하려면 버전을 별도 옵션으로 전달하십시오:
dotnet add package Doconut.NET8 --version 26.7.0Doconut.NET8은 패키지 ID입니다. .26.7.0 접미사는 다운로드된 Doconut.NET8.26.7.0.nupkg 파일명에 속하며 ID의 일부가 아닙니다.
Doconut 등록
AddDoconut()은 유일한 등록 진입점이며 — 단일 오버로드가 존재하고, Viewer 서비스, 라이선스 서비스, 그리고 렌더링 인프라를 DI 컨테이너에 연결합니다.
두 개의 미들웨어 호출이 설정을 완료하며, 호출 순서가 중요합니다: UseDoconutResources()는 UseDoconut()보다 먼저 실행되어야 합니다. UseDoconut()는 최종 미들웨어이므로 먼저 호출하면 /doconut-res 자산에 대한 모든 요청이 리소스 핸들러에 도달하지 못하고 404가 발생합니다. 세션 연결도 필요합니다 — Doconut의 기본 문서 보안은 모든 페이지 요청을 ASP.NET 세션 상태와 검증합니다.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // 세션 상태에 캐시가 필요합니다 (MVC/Razor Pages는 이미 하나를 추가합니다)
builder.Services.AddSession(); // Doconut 문서 보안은 ASP.NET 세션 상태에 의존합니다
app.UseSession(); // UseSession()을 UseDoconut()보다 먼저 호출합니다
app.UseDoconutResources(); // UseDoconut()보다 먼저 등록되어야 합니다
app.UseDoconut();모든 옵션
DoconutOptions는 다음과 같은 설정 가능한 속성을 허용합니다. 모든 속성은 선택 사항이며 — 속성이 설정되지 않으면 아래 기본값이 적용됩니다.
| 속성 | 기본값 | 설명 |
|---|---|---|
ShowDoconutInfo | false | true인 경우, token이 없는 요청은 404 대신 버전 배너를 반환합니다. 스모크 체크에 유용하지만, 프로덕션에서는 사용하지 않도록 합니다. |
UnsafeMode | false | true인 경우, 페이지 요청 시 ASP.NET 세션 보안 검사를 건너뜁니다. 프로덕션에서는 사용하지 않도록 합니다. |
MiddlewarePath | "/doconut" | 페이지-이미지 엔드포인트의 조정 값입니다. 검증은 되지만 자체적으로 브랜치를 마운트하지는 않으며, 실제 UseDoconut() 매핑 및 클라이언트 BasePath와 일치하도록 유지하십시오. |
ResourcesPath | "/doconut-res" | 임베디드된 JS/CSS/이미지 리소스가 제공되는 경로입니다. |
LicensePath | "" (empty string) | 라이선스 파일 경로입니다. 빈 문자열이면 다음 소스로 넘어가 자동 검색을 시도합니다. |
LicenseContent | "" (empty string) | 원시 라이선스 내용 — 환경 변수, 비밀 관리자, 또는 데이터베이스에서 가져옵니다. |
LicenseStream | null | 시작 시 한 번 읽는 스트림 형태의 라이선스입니다. |
ResetLicense | false | 예약된 호환성 플래그입니다. 현재 .NET 8 서비스는 AddDoconut() 중에 라이선스를 읽으며, 라이선스를 교체한 후 앱을 재시작하십시오. |
여러 소스가 설정된 경우 라이선스 우선순위는 LicenseStream > LicenseContent > LicensePath > 자동 검색 순입니다 — License Setup 참고.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.MiddlewarePath = "/doconut"; // 앱 매핑 및 클라이언트 BasePath와 조정
options.ResourcesPath = "/doconut-res"; // 뷰어의 JS/CSS/이미지가 제공되는 위치
options.UnsafeMode = false; // 세션 보안을 유지합니다
options.ShowDoconutInfo = false;
});다음 단계
이 페이지가 도움이 되었나요?