การแก้ไขปัญหา
วินิจฉัยข้อผิดพลาดทั่วไป
ข้อความต่อไปนี้เป็นข้อความดิบที่ Doconut สร้างขึ้น จัดเรียงตามอาการ ค้นหาข้อผิดพลาดของคุณและใช้วิธีแก้ไข
ตัวแสดงผลไม่แสดงอะไรเลย
พื้นที่แสดงผลว่างเปล่า, คอนโซลเบราว์เซอร์เต็มไปด้วย 404 สำหรับ /doconut-res/...
UseDoconutResources() หายไป, หรือวางหลัง UseDoconut() ควรอยู่เป็นอันดับแรกใน pipeline.
HTTP 500 พร้อมข้อความ:
Session middleware not configured. Call UseSession() before UseDoconut().ความปลอดภัยแบบโทเค็นของ Doconut (เปิดโดยค่าเริ่มต้น) ต้องการสถานะเซสชันของ ASP.NET เพิ่ม builder.Services.AddSession() และ app.UseSession() ก่อน สาขา middleware ของ Doconut
รูปภาพข้อผิดพลาดในพื้นที่หน้าแสดงข้อความ:
You Are Not Authorized To View This Page.โทเค็นถูกเปิดโดยเซสชันของเบราว์เซอร์อื่น สาเหตุทั่วไป: คุกกี้เซสชันไม่ถึงคำขอของหน้า (การตั้งค่า cross‑origin, นโยบาย SameSite, ไคลเอนต์ API ที่ไม่มีคุกกี้), หรือแอปรีสตาร์ท (คีย์เซสชันใหม่) นี่คือชั้นความปลอดภัยทำงานตามที่ออกแบบ — ดู แนวคิดหลัก → เซสชันและความปลอดภัย.
รูปภาพข้อผิดพลาดแสดงข้อความ:
Document session not found. Please re-open document.โทเค็นหมดอายุ (sliding window, ค่าเริ่มต้น 60 นาที — DocOptions.TimeOut) หรือเซสชันถูกปิด เปิดเอกสารใหม่เพื่อรับโทเค็นใหม่
การเปิดเอกสารล้มเหลว
LicenseException พร้อมข้อความปฏิเสธ — พบไฟล์ไลเซนส์แต่ถูกปฏิเสธ (ลายเซ็นไม่ถูกต้อง, ถูกดัดแปลง, ถูกบล็อก, หรือสร้างนอกช่วงเวอร์ชัน/อัปเดตของไลเซนส์) สถานะนี้บล็อกการเปิด (fail‑fast) แทนการลดระดับเป็น watermark; อ่าน License.RejectionMessage เพื่อดูสาเหตุ
LicenseException:
This document type requires the 'Dicom' plugin license.ส่วนขยายนี้จัดการได้เฉพาะโดยปลั๊กอิน (ที่นี่: DICOM) และความสามารถนั้นไม่ได้รับการมอบให้ลงทะเบียนปลั๊กอินและตรวจสอบ lic.IsCapabilityGranted(LicenseCapability.Dicom) การขาดหรือสิทธิ์ไม่เพียงพอแบบ non‑temporary มักจะล้มเหลวก่อนหน้าใน AddDoconut()
FormatNotSupportedException:
Document format '<extension>' is not supported.ไม่มี viewer — ไม่ว่าจะเป็น built‑in, ปลั๊กอิน หรือ custom — รองรับส่วนขยายนี้ ตรวจสอบรายการรูปแบบที่สนับสนุน; สำหรับรูปแบบของคุณเองสามารถเพิ่มได้ด้วย DoconutOptions.RegisterViewer
InvalidDataException — เนื้อหาไฟล์เสียหายหรือไม่ตรงกับส่วนขยาย (เช่น ไฟล์ที่เปลี่ยนชื่อ) ตรวจสอบไฟล์อัปโหลดก่อนเปิด
InvalidOperationException:
No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().คุณใช้ DocumentConverter แต่ไม่ได้ลงทะเบียนปลั๊กอิน Converter
การเริ่มต้นทำงานล้มเหลว
InvalidOperationException ที่กล่าวถึงปลั๊กอินที่ลงทะเบียนผ่าน AddPlugin — ไลเซนส์ non‑temporary ปัจจุบันไม่ได้มอบความสามารถนั้นให้กับปลั๊กอินนั้น ลบการลงทะเบียนหรือทำการติดตั้งไลเซนส์ที่มอบความสามารถดังกล่าว ไฟล์ไลเซนส์ TRIAL แบบเก่าจะไม่มอบความสามารถของปลั๊กอินใด ๆ
ArgumentException จาก 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.การตรวจสอบค่าตัวเลือกแบบ fail‑fast — แก้ไขเส้นทางที่ทำให้เกิดข้อผิดพลาด
ข้อผิดพลาดการสร้าง / ขึ้นต่อ
Compiler error CS1705, หรือที่ runtime ขณะเปิดเอกสาร:
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 บนไฟล์พรีเซนเทชันแรก:
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
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 ของคุณ, และผลลัพธ์การวินิจฉัยไลเซนส์.
หน้านี้เป็นประโยชน์หรือไม่?