문제 해결
일반 오류 진단
아래의 모든 메시지는 Doconut이 생성하는 실제 텍스트이며, 증상별로 정리되었습니다. 오류를 찾아 해결책을 적용하십시오.
뷰어에 아무 것도 표시되지 않음
빈 뷰어 영역, 브라우저 콘솔에 /doconut-res/...에 대한 404 오류가 가득함
UseDoconutResources()가 없거나 UseDoconut() 뒤에 배치되었습니다. 파이프라인에서 가장 먼저 와야 합니다.
HTTP 500 발생:
Session middleware not configured. Call UseSession() before UseDoconut().Doconut의 토큰 보안(기본적으로 활성화)은 ASP.NET 세션 상태가 필요합니다. Doconut 미들웨어 분기 앞에 builder.Services.AddSession()와 app.UseSession()를 추가하십시오. 세션 상태에는 캐시도 필요합니다: 최소 API 앱에서는 builder.Services.AddDistributedMemoryCache()를 추가하거나, 그렇지 않으면 Unable to resolve service for type 'IDistributedCache' 때문에 시작 시 앱이 중단됩니다(MVC 및 Razor Pages 앱은 이미 하나를 등록합니다).
페이지 영역에 오류 이미지가 표시되고 내용:
You Are Not Authorized To View This Page.토큰이 다른 브라우저 세션에 의해 열렸습니다. 일반적인 원인: 세션 쿠키가 페이지 요청에 도달하지 않음(교차 출처 설정, SameSite 정책, 쿠키 저장소가 없는 API 클라이언트) 또는 앱이 재시작됨(새 세션 키). 이는 설계된 대로 작동하는 보안 레이어이며 — Core Concepts → Sessions & Security를 참조하십시오.
오류 이미지에 표시된 내용:
Document session not found. Please re-open document.토큰이 만료되었습니다(슬라이딩 윈도우, 기본 60분 — DocOptions.TimeOut) 또는 세션이 종료되었습니다. 새 토큰을 위해 문서를 다시 열어 주세요.
문서 열기 실패
LicenseException가 거부 메시지와 함께 발생 — 라이선스 파일은 발견되었지만 거부되었습니다(서명 무효, 변조, 블랙리스트에 등재, 또는 라이선스 버전/업데이트 창을 벗어난 빌드). 이 상태는 워터마크로 낮추는 대신 열기를 차단합니다(빠른 실패). 이유는 License.RejectionMessage를 참조하십시오.
LicenseException:
This document type requires the 'Dicom' plugin license.해당 확장자는 플러그인(여기서는 DICOM)에서만 처리되며 더 이상 기능이 부여되지 않았습니다. 플러그인을 등록하고 lic.IsCapabilityGranted(LicenseCapability.Dicom)를 확인하십시오. 누락되었거나 충분하지 않은 비임시 권한은 일반적으로 AddDoconut() 중에 먼저 실패합니다.
FormatNotSupportedException:
Document format '<extension>' is not supported.내장, 플러그인 또는 사용자 지정 뷰어 중 어느 것도 해당 확장자를 지원하지 않습니다. 지원되는 형식 목록을 확인하십시오; 자체 형식의 경우 DoconutOptions.RegisterViewer를 사용해 추가할 수 있습니다.
InvalidDataException — 파일 내용이 손상되었거나 확장자와 일치하지 않습니다(예: 파일 이름을 변경한 경우). 열기 전에 업로드를 검증하십시오.
InvalidOperationException:
No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().DocumentConverter를 해결했지만 Converter 플러그인을 등록하지 않았습니다.
시작 실패
InvalidOperationException가 AddPlugin를 통해 등록된 플러그인을 언급 — 현재 비임시 라이선스는 해당 플러그인 기능을 부여하지 않습니다. 등록을 제거하거나 해당 기능을 부여하는 라이선스를 설치하십시오. 라이선스가 없고 레거시 TRIAL 파일도 플러그인 기능을 부여하지 않습니다.
ArgumentException from AddDoconut():
DoconutOptions.MiddlewarePath must be a non-empty path starting with '/'.
DoconutOptions.ResourcesPath must be a non-empty path starting with '/'.
DoconutOptions.MiddlewarePath and ResourcesPath must be different paths.빠른 실패 옵션 검증 — 문제의 경로를 수정하십시오.
빌드 / 종속성 오류
컴파일러 오류 CS1705, 또는 문서 열기 시 런타임 오류:
Could not load file or assembly 'System.Text.Json, Version=8.0.0.0'프로젝트가 Doconut.NET6가 선언한 8.0.x 종속성보다 낮은 버전인 System.Text.Json 또는 System.Text.Encodings.Web에 고정되었습니다. 다운그레이드를 제거하고 NuGet이 패키지 그래프를 복원하도록 하십시오(System.Text.Json 8.0.6 및 System.Text.Encodings.Web 8.0.0은 감사된 26.7.0 패키지에 포함).
첫 프레젠테이션 파일에서 TypeInitializationException:
Could not load ... System.Drawing.Common, Version=6.0.0.0프레젠테이션 엔진은 System.Drawing.Common 6.0.0을 강제로 요구합니다(패키지에 선언됨). 해당 종속성을 제거하거나 재정의하지 마십시오 — 이 없이는 모든 PPT/PPTX/PPS/POT/ODP 열기가 실패합니다.
출력이 잘못 표시됨
페이지에 워터마크가 표시됨 — 앱이 평가 모드에 있습니다: 라이선스 파일이 없거나, 임시 또는 구독 기간이 만료되었거나, 도메인이 유효하지 않습니다. IDoconutLicenseService (License.IsLicenseFileFound, IsExpired, IsVersionValid, IsValidForDomain, License.RejectionMessage)를 검사하십시오 — Licensing 페이지의 IDoconutLicenseService 참조에 준비된 엔드포인트가 표시됩니다.
레거시 문서가 깨진 텍스트로 렌더링됨 — .NET 6에서는 코드 페이지 인코딩이 기본적으로 로드되지 않습니다. 시작 시 한 번 추가하십시오:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);Linux/Docker에서 잘못된 폰트 또는 대체 폰트 — 컨테이너에 문서 폰트가 없습니다. 마운트된 폰트 디렉터리를 FontFolders(WordConfig/PptConfig)에 지정하십시오.
프레젠테이션은 열리지만 Linux/macOS에서 렌더링에 실패함 — 현재 PPT/PPTX/PPS/POT/ODP 렌더러는 네이티브 libgdiplus와 System.Drawing.EnableUnixSupport=true가 필요합니다. 패키지는 이 스위치를 지원하는 마지막 버전인 System.Drawing.Common 6.0.0을 제공합니다.
기능이 평가판에서는 작동했지만, 프로덕션에서는 동작하지 않음
전형적인 실서비스 서프라이즈: 활성 임시 라이선스는 모든 기능을 부여하지만, 구매한 라이선스는 구매한 기능만 부여합니다. 검색 및 주석 번들은 해당 기능이 없을 경우 사라질 수 있습니다. 비임시 라이선스가 충분하지 않은 경우 등록된 Converter 또는 DICOM 플러그인은 AddDoconut() 중에 실패합니다. 배포 전에 활성화하는 모든 기능과 IsCapabilityGranted(...)을 비교하십시오.
검색 결과가 없거나 매우 적음
- 직접 PDF의 경우, 열 때
AllowSearch가 활성화되지 않았습니다. Word, Excel, PowerPoint는 중첩된PdfConfig를 통해 동일한 스위치를 제공합니다. - 콘텐츠가 스캔된 이미지 전용이라 일반 검색에 매칭할 텍스트 레이어가 없습니다. 텍스트가 포함된 소스나 텍스트 레이어를 보존하는 PDF 투영을 사용하십시오.
- HTML 및 MS Project(MPP)는 기본 설정에서는 검색할 수 없습니다 —
DefaultRender = false를 설정하여 PDF 투영을 통해 네이티브 텍스트 레이어로 렌더링하도록 하십시오. Word, Excel, PowerPoint, TXT, Visio, 이메일, EPUB, MHT는 카탈로그 기본값에서 검색됩니다. - 초기화 후
objViewer.CanSearch()는false입니다 — 해결된 형식에 표준 검색 경로가 없습니다. 이 판단은 Search 라이선스와 별개이며, 두 가지를 모두 확인하십시오.
아직도 문제인가요?
문제를 최소 Quick Start 앱에 격리해 보세요; 해당 앱에서도 재현된다면 문서와 Program.cs, 라이선스 진단 출력을 함께 지원팀에 문의하십시오.
이 페이지가 도움이 되었나요?