การแก้ไขปัญหา
วินิจฉัยข้อผิดพลาดทั่วไป
ข้อความต่อไปนี้เป็นข้อความดิบที่ 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. สถานะเซสชันต้องการแคชด้วย: ในแอป minimal-API ให้เพิ่ม builder.Services.AddDistributedMemoryCache(), หรือแอปจะหยุดที่การเริ่มต้นด้วย Unable to resolve service for type 'IDistributedCache' (แอป MVC และ Razor Pages จะลงทะเบียนไว้แล้ว).
รูปภาพข้อผิดพลาดในพื้นที่หน้าแสดงข้อความ:
You Are Not Authorized To View This Page.โทเคนถูกเปิดโดยเซสชันเบราว์เซอร์ที่แตกต่าง สาเหตุทั่วไป: คุกกี้เซสชันไม่ถึงคำขอของหน้า (การตั้งค่า cross-origin, นโยบาย SameSite, ลูกค้า API ที่ไม่มี cookie jar), หรือแอปรีสตาร์ท (คีย์เซสชันใหม่) นี่คือชั้นความปลอดภัยทำงานตามที่ออกแบบ — ดู Core Concepts → Sessions & Security.
รูปภาพข้อผิดพลาดแสดงข้อความ:
Document session not found. Please re-open document.โทเคนหมดอายุ (หน้าต่างเลื่อน, ค่าเริ่มต้น 60 นาที — DocOptions.TimeOut) หรือเซสชันถูกปิด เปิดเอกสารใหม่เพื่อรับโทเคนใหม่.
การเปิดเอกสารล้มเหลว
LicenseException พร้อมข้อความปฏิเสธ — พบไฟล์ใบอนุญาตแต่ถูกปฏิเสธ (ลายเซ็นไม่ถูกต้อง, ถูกดัดแปลง, ถูกบล็อค, หรือบิลด์อยู่นอกช่วงเวอร์ชัน/อัปเดตของใบอนุญาต) สถานะนี้บล็อกการเปิด (fail-fast) แทนที่จะลดระดับเป็นลายน้ำ; อ่าน 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.ไม่มีตัวดู — ในตัว, ปลั๊กอิน, หรือแบบกำหนดเอง — รองรับส่วนขยายนั้น ตรวจสอบรายการรูปแบบที่สนับสนุน; สำหรับรูปแบบของคุณเอง, DoconutOptions.RegisterViewer สามารถเพิ่มได้.
InvalidDataException — เนื้อหาไฟล์เสียหายหรือไม่ตรงกับส่วนขยาย (เช่น ไฟล์ที่เปลี่ยนชื่อ). ตรวจสอบการอัปโหลดก่อนเปิด.
InvalidOperationException:
No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().คุณได้แก้ไข DocumentConverter โดยไม่ได้ลงทะเบียนปลั๊กอิน Converter.
การเริ่มต้นล้มเหลว
InvalidOperationException ที่กล่าวถึงปลั๊กอินที่ลงทะเบียนผ่าน AddPlugin — ใบอนุญาต non-temporary ปัจจุบันไม่ได้ให้ความสามารถของปลั๊กอินนั้น ลบการลงทะเบียนหรือทำการติดตั้งใบอนุญาตที่ให้สิทธิ์นั้น. ใบอนุญาตที่หายไปและไฟล์ legacy 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 — แก้ไขเส้นทางที่เป็นปัญหา.
ข้อผิดพลาดการสร้าง / ขึ้นต่อ
ข้อผิดพลาดคอมไพเลอร์ CS1705, หรือขณะรันไทม์เมื่อเปิดเอกสาร:
Could not load file or assembly 'System.Text.Json, Version=8.0.0.0'โปรเจคของคุณระบุ System.Text.Json หรือ System.Text.Encodings.Web ต่ำกว่าการพึ่งพา 8.0.x ที่ประกาศโดย Doconut.NET6. ลบการดาวน์เกรดและให้ 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) — การอ้างอิง IDoconutLicenseService ของหน้าลิขสิทธิ์แสดงจุดสิ้นสุดที่พร้อมใช้งาน.
เอกสาร legacy แสดงข้อความเป็นอักขระผิด — การเข้ารหัส code-page ไม่ได้โหลดโดยค่าเริ่มต้นบน .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 เนื่องจากเป็นเวอร์ชันสุดท้ายที่รองรับสวิตช์นี้.
ฟีเจอร์ทำงานในโหมดประเมิน, แต่เงียบในการผลิต
ความประหลาดใจคลาสสิกเมื่อเปิดใช้งานจริง: ใบอนุญาต Temporary ที่ใช้งานอยู่ให้ทุกความสามารถ; ใบอนุญาตที่คุณซื้อให้เฉพาะสิ่งที่คุณได้ซื้อ. แพ็คเกจการค้นหาและการอธิบายประกอบอาจหายไปเมื่อความสามารถของมันไม่มี. ปลั๊กอิน Converter หรือ DICOM ที่ลงทะเบียนด้วยใบอนุญาต non-temporary ที่ไม่เพียงพอจะล้มเหลวระหว่าง 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 ของคุณ, และผลลัพธ์การวินิจฉัยใบอนุญาต.
หน้านี้เป็นประโยชน์หรือไม่?