การแก้ไขปัญหา

วินิจฉัยข้อผิดพลาดทั่วไป

ข้อความต่อไปนี้เป็นข้อความดิบที่ Doconut สร้างขึ้น จัดเรียงตามอาการ ค้นหาข้อผิดพลาดของคุณและใช้วิธีแก้ไข

ตัวแสดงผลไม่แสดงอะไรเลย

พื้นที่แสดงผลว่างเปล่า, คอนโซลเบราว์เซอร์เต็มไปด้วย 404 สำหรับ /doconut-res/... UseDoconutResources() หายไป, หรือวางหลัง UseDoconut() ควรอยู่เป็นอันดับแรกใน pipeline.

HTTP 500 พร้อมข้อความ:

text
Session middleware not configured. Call UseSession() before UseDoconut().

ความปลอดภัยแบบโทเค็นของ Doconut (เปิดโดยค่าเริ่มต้น) ต้องการสถานะเซสชันของ ASP.NET เพิ่ม builder.Services.AddSession() และ app.UseSession() ก่อน สาขา middleware ของ Doconut

รูปภาพข้อผิดพลาดในพื้นที่หน้าแสดงข้อความ:

text
You Are Not Authorized To View This Page.

โทเค็นถูกเปิดโดยเซสชันของเบราว์เซอร์อื่น สาเหตุทั่วไป: คุกกี้เซสชันไม่ถึงคำขอของหน้า (การตั้งค่า cross‑origin, นโยบาย SameSite, ไคลเอนต์ API ที่ไม่มีคุกกี้), หรือแอปรีสตาร์ท (คีย์เซสชันใหม่) นี่คือชั้นความปลอดภัยทำงานตามที่ออกแบบ — ดู แนวคิดหลัก → เซสชันและความปลอดภัย.

รูปภาพข้อผิดพลาดแสดงข้อความ:

text
Document session not found. Please re-open document.

โทเค็นหมดอายุ (sliding window, ค่าเริ่มต้น 60 นาที — DocOptions.TimeOut) หรือเซสชันถูกปิด เปิดเอกสารใหม่เพื่อรับโทเค็นใหม่

การเปิดเอกสารล้มเหลว

LicenseException พร้อมข้อความปฏิเสธ — พบไฟล์ไลเซนส์แต่ถูกปฏิเสธ (ลายเซ็นไม่ถูกต้อง, ถูกดัดแปลง, ถูกบล็อก, หรือสร้างนอกช่วงเวอร์ชัน/อัปเดตของไลเซนส์) สถานะนี้บล็อกการเปิด (fail‑fast) แทนการลดระดับเป็น watermark; อ่าน License.RejectionMessage เพื่อดูสาเหตุ

LicenseException:

text
This document type requires the 'Dicom' plugin license.

ส่วนขยายนี้จัดการได้เฉพาะโดยปลั๊กอิน (ที่นี่: DICOM) และความสามารถนั้นไม่ได้รับการมอบให้ลงทะเบียนปลั๊กอินและตรวจสอบ lic.IsCapabilityGranted(LicenseCapability.Dicom) การขาดหรือสิทธิ์ไม่เพียงพอแบบ non‑temporary มักจะล้มเหลวก่อนหน้าใน AddDoconut()

FormatNotSupportedException:

text
Document format '<extension>' is not supported.

ไม่มี viewer — ไม่ว่าจะเป็น built‑in, ปลั๊กอิน หรือ custom — รองรับส่วนขยายนี้ ตรวจสอบรายการรูปแบบที่สนับสนุน; สำหรับรูปแบบของคุณเองสามารถเพิ่มได้ด้วย DoconutOptions.RegisterViewer

InvalidDataException — เนื้อหาไฟล์เสียหายหรือไม่ตรงกับส่วนขยาย (เช่น ไฟล์ที่เปลี่ยนชื่อ) ตรวจสอบไฟล์อัปโหลดก่อนเปิด

InvalidOperationException:

text
No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().

คุณใช้ DocumentConverter แต่ไม่ได้ลงทะเบียนปลั๊กอิน Converter

การเริ่มต้นทำงานล้มเหลว

InvalidOperationException ที่กล่าวถึงปลั๊กอินที่ลงทะเบียนผ่าน AddPlugin — ไลเซนส์ non‑temporary ปัจจุบันไม่ได้มอบความสามารถนั้นให้กับปลั๊กอินนั้น ลบการลงทะเบียนหรือทำการติดตั้งไลเซนส์ที่มอบความสามารถดังกล่าว ไฟล์ไลเซนส์ TRIAL แบบเก่าจะไม่มอบความสามารถของปลั๊กอินใด ๆ

ArgumentException จาก AddDoconut():

text
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.

การตรวจสอบค่าตัวเลือกแบบ fail‑fast — แก้ไขเส้นทางที่ทำให้เกิดข้อผิดพลาด

ข้อผิดพลาดการสร้าง / ขึ้นต่อ

Compiler error CS1705, หรือที่ runtime ขณะเปิดเอกสาร:

text
Could not load file or assembly 'System.Text.Json, Version=8.0.0.0'

โปรเจคของคุณ pin System.Text.Json หรือ System.Text.Encodings.Web ให้ต่ำกว่า 8.0.x ที่ประกาศโดย Doconut.NET6 ให้ลบการดาวน์เกรดและให้ NuGet ทำการ restore กราฟแพ็กเกจ (System.Text.Json 8.0.6 และ System.Text.Encodings.Web 8.0.0 ในแพ็กเกจ audited 26.7.0)

TypeInitializationException บนไฟล์พรีเซนเทชันแรก:

text
Could not load ... System.Drawing.Common, Version=6.0.0.0

เอนจินพรีเซนเทชันต้องการ System.Drawing.Common 6.0.0 อย่างเข้มข้น (ประกาศโดยแพ็กเกจ) อย่าลบหรือแทนที่ dependency นี้ — ทุกการเปิด PPT/PPTX/PPS/POT/ODP จะล้มเหลวหากไม่มีมัน

ผลลัพธ์ดูผิดพลาด

หน้ามีลายน้ำ — แอปอยู่ในสถานะ evaluation: ไม่พบไฟล์ไลเซนส์, หน้าต่าง temporary หรือ subscription หมดอายุ, หรือโดเมนไม่ถูกต้อง ตรวจสอบ IDoconutLicenseService (License.IsLicenseFileFound, IsExpired, IsVersionValid, IsValidForDomain, License.RejectionMessage) — การอ้างอิง IDoconutLicenseService ของหน้า Licensing แสดง endpoint ที่พร้อมใช้

เอกสารรุ่นเก่าถูกแสดงเป็นข้อความที่บิดเบี้ยว — การเข้ารหัส code‑page ไม่ได้โหลดโดยค่าเริ่มต้นบน .NET 6 เพิ่มครั้งเดียวที่ startup

csharp
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

ฟอนต์ผิดหรือถูกแทนที่บน Linux/Docker — คอนเทนเนอร์ไม่มีฟอนต์ของเอกสาร ตั้งค่า FontFolders (บน WordConfig/PptConfig) ให้ชี้ไปยังไดเรกทอรีฟอนต์ที่เมานท์ไว้

พรีเซนเทชันเปิดได้แต่ไม่สามารถเรนเดอร์บน Linux/macOS — เรนเดอร์ PPT/PPTX/PPS/POT/ODP ปัจจุบันต้องการ libgdiplus แบบ native พร้อม System.Drawing.EnableUnixSupport=true แพ็กเกจจัดหา System.Drawing.Common 6.0.0 เพราะเป็นเวอร์ชันสุดท้ายที่สนับสนุนสวิตช์นี้

ฟีเจอร์ทำงานในโหมดประเมิน แต่เงียบในการผลิต

ความประหลาดใจแบบคลาสสิกเมื่อเปิดใช้งานจริง: ไลเซนส์ Temporary ที่ใช้งานอยู่ให้ทุกความสามารถ; ไลเซนส์ที่คุณซื้อจะให้เฉพาะสิ่งที่คุณได้ซื้อเท่านั้น แพ็คเกจ Search และ Annotation อาจหายไปเมื่อความสามารถเหล่านั้นไม่มี ปลั๊กอิน Converter หรือ DICOM ที่ลงทะเบียนด้วยไลเซนส์ non‑temporary ไม่เพียงพอจะล้มเหลวระหว่าง AddDoconut() เปรียบเทียบ IsCapabilityGranted(...) กับทุกฟีเจอร์ที่คุณเปิดใช้ก่อนการปรับใช้

การค้นหาไม่พบอะไร (หรือพบน้อยเกินไป)

  • สำหรับ PDF โดยตรง AllowSearch ไม่ได้เปิดใช้งานในขณะเปิด Word, Excel, และ PowerPoint จะเปิดสวิตช์เดียวกันผ่าน PdfConfig ที่ซ้อนอยู่
  • เนื้อหาเป็นแบบสแกน/ภาพเท่านั้น ทำให้ Search ปกติไม่มีเลเยอร์ข้อความให้จับคู่ ใช้แหล่งข้อมูลที่มีข้อความหรือ PDF projection ที่คงข้อความไว้
  • HTML และ MS Project (MPP) ไม่สามารถค้นหาได้ตามค่าเริ่มต้น — ตั้งค่า DefaultRender = false เพื่อให้เรนเดอร์ผ่าน PDF projection ที่มีเลเยอร์ข้อความแบบเนทีฟ Word, Excel, PowerPoint, TXT, Visio, email, EPUB, และ MHT จะค้นหาได้ตามค่าเริ่มต้นของแคตาล็อก
  • objViewer.CanSearch() เป็น false หลังการเริ่มต้น — รูปแบบที่แก้ไขแล้วไม่มีเส้นทางการค้นมาตรฐาน คำตัดสินนี้แยกจากไลเซนส์ Search; ตรวจสอบทั้งสองอย่าง

ยังคงติดอยู่หรือไม่?

แยกปัญหาออกจากแอป Quick Start ขั้นต่ำ; หากเกิดซ้ำที่นั่น ให้ติดต่อฝ่ายสนับสนุนพร้อมเอกสาร, Program.cs ของคุณ, และผลลัพธ์การวินิจฉัยไลเซนส์.

หน้านี้เป็นประโยชน์หรือไม่?