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

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

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

ตัวดูแสดงไม่มีอะไร

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

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

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

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

text
You Are Not Authorized To View This Page.

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

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

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

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

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

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

LicenseException:

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

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

FormatNotSupportedException:

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

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

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

InvalidOperationException:

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

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

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

InvalidOperationException ที่ระบุปลั๊กอินที่ลงทะเบียนผ่าน AddPlugin — ใบอนุญาตแบบไม่ชั่วคราวปัจจุบันไม่ได้มอบความสามารถของปลั๊กอินนั้น ลบการลงทะเบียนหรือทำการติดตั้งใบอนุญาตที่มอบให้ ความขาดแคลนใบอนุญาตและไฟล์ 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 — แก้ไขเส้นทางที่เป็นปัญหา.

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

ข้อผิดพลาดคอมไพเลอร์ CS1705 หรือในขณะรันไทม์เมื่อเปิดเอกสาร:

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

โปรเจกต์ของคุณกำหนดเวอร์ชัน System.Text.Json / System.Text.Encodings.Web ต่ำกว่า 10.0.x ให้ลบการลดเวอร์ชันและให้ NuGet กู้คืนเวอร์ชันที่ Doconut.NET8 ระบุ.

TypeInitializationException ในไฟล์การนำเสนอแรก:

text
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 ของหน้าลิขสิทธิ์แสดงจุดเชื่อมต่อที่พร้อมใช้งานแล้ว.

เอกสารเก่าแสดงข้อความเป็นอักขระผิด — การเข้ารหัส code-page ไม่ได้โหลดโดยค่าเริ่มต้นใน .NET 8 เพิ่มครั้งเดียวที่การเริ่มต้น:

csharp
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 ที่ลงทะเบียนด้วยใบอนุญาตแบบไม่ชั่วคราวที่ไม่เพียงพอจะล้มเหลวระหว่าง AddDoconut() เปรียบเทียบ IsCapabilityGranted(...) กับทุกฟีเจอร์ที่คุณเปิดใช้งานก่อนการปรับใช้.

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

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

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

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

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