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

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

หลายกรณีของ System.Web ล้มเหลวโดยไม่โยนข้อยกเว้นที่คุณจะเห็น: หน้าให้ค่า 500 ว่าง, ไอคอน 404, หรือคำขอที่ไม่คืนค่าเลย หน้านี้จัดเรียงตามสิ่งที่คุณสังเกต ข้อความที่อ้างอิงเป็นข้อความดิบที่ Doconut สร้างขึ้น

ภาพรวมอาการ

สิ่งที่คุณเห็นสาเหตุที่เป็นไปได้มากที่สุดวิธีแก้
ทุก คำขอตอบกลับเป็น 500 ว่างข้อยกเว้นใน Application_Start: ปลั๊กอินที่ไม่มีลิขสิทธิ์, ตัวเลือกที่ไม่ถูกต้อง, การกำหนดค่าฟาร์มที่ไม่สมบูรณ์ — หรือการเปลี่ยนเส้นทางการผูกมัดที่ระบุเวอร์ชันที่ไม่มีใน bin\บันทึกเหตุการณ์ Windows, Application, source ASP.NET. ดู ข้อผิดพลาดขณะเริ่มต้น
บาง หน้า MVC ตอบกลับเป็น 500 ว่างRazor คอมไพล์วิวในเวลารัน: ส่วนหน้า netstandard หายจาก <compilation>, หรือวิวใช้ C# ที่ใหม่กว่า 5 (?., $"...", nameof)เพิ่มส่วนหน้า (การติดตั้ง); ย้ายตรรกะจากวิวไปยังคอนโทรลเลอร์
หน้าแสดง —, … หรือคล้ายกันแทนเครื่องหมายขีดและสำเนียงหน้าไฟล์ไม่มี byte-order mark จึงอ่านด้วยหน้า ANSI ของเซิร์ฟเวอร์<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" />
คอนโซลเบราว์เซอร์แสดง 404 สำหรับ HEAD /DocImage.axd?...&page=1ตัวจัดการถูกลงทะเบียนโดยไม่มีคำกริยา HEADverb="GET,HEAD,POST" บนตัวจัดการ
เอกสารถูกแสดง, แต่ไอคอนแถบเครื่องมือและสปินเนอร์โหลดหายไปResPath ชี้ไปที่รากของทรัพยากร, หรือเริ่มด้วย /ResPath: 'doconut-res/images'
คำขอ /doconut-res/... ตอบกลับเป็น 404โมดูลทรัพยากรไม่ได้ลงทะเบียน, runAllManagedModulesForAllRequests ปิดอยู่, หรือการกำหนดเส้นทาง MVC จับเส้นทางรายการ <modules>, และ routes.IgnoreRoute("doconut-res/{*pathInfo}")
Viewer รายงาน The viewer handler could not be reached (no response).BasePath เริ่มด้วย / ('/myapp' กลายเป็น //myapp/…, โฮสต์อื่น)BasePath: '/' ที่รากของไซต์; 'myapp' ในไดเรกทอรีเสมือน
Viewer รายงาน Please make sure your middleware is configured.DocImage.axd ตอบกลับ 404: ตัวจัดการไม่อยู่ใน Web.config, การกำหนดเส้นทาง MVC จับมัน, หรือ BasePath ชี้ไปที่อื่นรายการ <handlers>, routes.IgnoreRoute("{resource}.axd/{*pathInfo}"), และ BasePath
ทุกหน้าจอแสดง You Are Not Authorized To View This Page.เอกสารถูกเปิดในคำขอที่ไม่มีสถานะเซสชัน, สถานะเซสชันปิดอยู่, หรือคุกกี้เซสชันไม่ถึง DocImage.axdดู ไม่ได้รับอนุญาต
การแปลง Web Forms ไม่เคยคืนค่าหน้าบล็อกที่ ConvertAsync — การ deadlockAsync="true" + RegisterAsyncTask (ปลั๊กอินแปลง)
ทุกหน้ามีลายน้ำการประเมินไม่พบลิขสิทธิ์ — ไม่อยู่ใน <site root>\wwwrootตั้งค่าลิขสิทธิ์
วิดเจ็ตโหลด, แต่การกระทำแรกตอบกลับเป็น 404วิดเจ็ตไม่ได้เปิดใช้งาน, หรือ basePath ของมันไม่ใช่ '/DocImage.axd'options.Add…Widget(), และ basePath: '/DocImage.axd'
เอกสารแรกหลังจากไซต์เริ่มหรือรีไซเคิลใช้เวลาหนึ่งนาทีหรือมากกว่า; เอกสารต่อมาจะเร็วเอนจินเอกสารโหลดเมื่อเปิดครั้งแรก, และแอนตี้ไวรัสแบบเรียลไทม์สแกนขณะโหลดอุ่นไซต์และรักษา pool ให้ทำงาน — ดู เอกสารแรกหลังจากการเริ่มต้น
การอัปโหลดขนาดใหญ่แสดงหน้าข้อผิดพลาด IISการอัปโหลดเกิน maxRequestLength (KB) หรือ maxAllowedContentLength (bytes)เพิ่มค่าสูงสุดทั้งสองให้เกินไฟล์หรือวิดเจ็ตที่ใหญ่ที่สุดของคุณ

ความล้มเหลวขณะเริ่มต้น

ข้อยกเว้นที่ถูกโยนใน Application_Start ไม่ถึงเบราว์เซอร์: ทุกคำขอตอบกลับเป็น 500 ว่าง, และบันทึก IIS ไม่แสดงอะไรที่เป็นประโยชน์. ข้อยกเว้นอยู่ใน Windows event log (Event Viewer → Windows Logs → Application, source ASP.NET). ตัวอย่างทั่วไป:

ปลั๊กอินที่ไม่มีลิขสิทธิ์:

text
The Converter plugin is registered via AddPlugin but no active license grants Converter.
Remove the AddPlugin<...>() call or install a license (or trial/demo) that includes Converter.

ไฟล์ Doconut.Viewer.<Capability>.lic ของปลั๊กอินต้องอยู่ใน wwwroot, ข้างๆ Doconut.Viewer.lic. การไม่มีลิขสิทธิ์และไฟล์ TRIAL รุ่นเก่าไม่ให้ความสามารถใดๆ กับปลั๊กอิน

ตัวเลือกไม่ถูกต้อง:

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.

การประกอบที่ไม่สามารถโหลดได้. ASP.NET โหลดทุกการประกอบใน bin\ เมื่อแอปพลิเคชันเริ่ม, ดังนั้นการเปลี่ยนเส้นทางการผูกมัดใน Web.config ที่ระบุเวอร์ชันที่ไม่มีใน bin\ จะทำให้ไซต์ทั้งหมดหยุดทำงาน. คัดลอกการเปลี่ยนเส้นทางที่ NuGet สร้าง (สำหรับโครงการแบบ SDK, จาก bin\<YourApp>.dll.config) แทนการแก้ไขด้วยมือ, และคัดลอกอีกครั้งหลังการอัปเดตแพคเกจ.

คุณไม่ได้รับอนุญาตให้ดูหน้านี้.

หน้าถูกปฏิเสธเนื่องจากเซสชัน ASP.NET ที่ร้องขอไม่เคยได้รับเอกสาร ตรวจสอบตามลำดับ:

  1. การเปิดทำงานด้วยสถานะเซสชัน. MVC controllers และหน้า Web Forms มีสถานะนี้ ตัวกำหนดเอง IHttpHandler ที่เปิดเอกสารต้องทำการ implement System.Web.SessionState.IRequiresSessionState มิฉะนั้นจะไม่มีเซสชันให้มอบหมาย
  2. สถานะเซสชันเปิดอยู่. <sessionState mode="Off" /> ปฏิเสธทุกหน้า
  3. คุกกี้ถึงตัวจัดการ. คำขอเดียวต้นของวิดเจ็ตจะพา ASP.NET_SessionId ไปด้วย; สคริปต์, การเรียกเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์, หรือหน้าตัดต้นที่ไม่มีคุกกี้จะไม่มี
  4. Web farm: การเปิดผูกกับเบราว์เซอร์ (DocOptions.BrowserId) และหน้าผ่านตั๋ว (objViewer.View(token, access)); ทุกโหนดใช้คีย์การลงนามเดียวกัน

การปฏิเสธเป็นภาพที่ให้บริการพร้อมสถานะ 200 ขนาดประมาณ 2 KB ตัวตรวจสอบที่ตรวจสอบแค่รหัสสถานะจะนับว่ามันเป็นหน้า

ไม่พบเซสชันเอกสาร. โปรดเปิดเอกสารใหม่.

โทเค็นหมดอายุ (หน้าต่างเลื่อน, DocOptions.TimeOut, ค่าเริ่มต้น 60 นาที), เอกสารถูกปิด, หรือ — บนเซิร์ฟเวอร์เดียว — พูลแอปพลิเคชันถูกรีไซเคิล การรีไซเคิลเกิดตามกำหนด, ทุกการแก้ไข Web.config, และหลังจากเวลาหมดการไม่ทำงานของพูล (ค่าเริ่มต้น 20 นาทีใน IIS) เปิดเอกสารอีกครั้งเพื่อรับโทเค็นใหม่

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

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

LicenseException:

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

ส่วนขยายนี้จัดการได้เฉพาะโดยปลั๊กอิน (ที่นี่คือ DICOM) ซึ่งความสามารถไม่ได้รับการมอบหมาย

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

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

InvalidOperationException:

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

DocumentConverter ถูกแก้ไขโดยไม่ได้ลงทะเบียนปลั๊กอิน Converter

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

หน้ามีน้ำหนักลายน้ำ — ไม่พบใบอนุญาต, หรือใบอนุญาตหมดอายุหรือไม่ครอบคลุมเวอร์ชันนี้ ภายใต้ IIS ใบอนุญาตต้องอยู่ใน wwwroot ใต้รูทของไซต์ (AppContext.BaseDirectory\wwwroot) ไม่ใช่ใน bin\ ตรวจสอบ IDoconutLicenseService (License.IsLicenseFileFound, IsExpired, IsVersionValid, License.RejectionMessage)

เอกสารเก่าถูกแสดงเป็นข้อความที่อ่านไม่ออก — ลงทะเบียนการเข้ารหัสหน้าโค้ดเพจครั้งเดียวที่เริ่มต้น:

csharp
// Global.asax.cs, Application_Start - ก่อน DoconutHost.Initialize.
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

ฟอนต์ผิดหรือถูกแทนที่ — เซิร์ฟเวอร์ไม่มีฟอนต์ของเอกสาร Windows Server ที่ไม่มี Office มีฟอนต์น้อยกว่าคอมพิวเตอร์พัฒนาอย่างมาก ติดตั้งฟอนต์ หรือชี้ FontFolders (บน WordConfig และ PptConfig) ไปยังโฟลเดอร์ที่เก็บฟอนต์เหล่านั้น

คำอธิบายภาพปรากฏในตัวดูแต่การส่งออกมีกล่องข้อความ “Image blocked” — โฮสต์ของภาพมีที่อยู่ส่วนตัวหรือ loopback ซึ่งเซิร์ฟเวอร์ปฏิเสธการดึงข้อมูล ดู คำอธิบายภาพ

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

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

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

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

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

ทำซ้ำปัญหาด้วยการตั้งค่าขั้นต่ำจาก เริ่มต้นอย่างเร็ว. หากมันเกิดซ้ำที่นั่น, ติดต่อฝ่ายสนับสนุนพร้อมเอกสาร, Global.asax.cs ของคุณ, ส่วน Doconut ของ Web.config, และรายการบันทึกเหตุการณ์ของ Windows หากมี.

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