การติดตั้ง

เพิ่ม Doconut ไปยังโครงการ .NET 8 ของคุณ

Base Doconut viewer สำหรับ .NET 8 มาพร้อมกับ NuGet package เดียวที่สามารถเชื่อมต่อกับแอปพลิเคชัน ASP.NET Core ใดก็ได้ ปลั๊กอินเสริมจะใช้แพคเกจแยกต่างหาก หน้านี้จะทำการติดตั้งแพคเกจพื้นฐานและลงทะเบียน middleware — ขั้นตอนขั้นต่ำที่จำเป็นก่อนการเรนเดอร์ครั้งแรกของคุณ

ติดตั้งแพคเกจ

bash
dotnet add package Doconut.NET8

คำสั่งที่ไม่มีเวอร์ชันจะติดตั้งรุ่นเสถียรล่าสุด เพื่อทำซ้ำรุ่น 26.7.0 ปัจจุบันอย่างแม่นยำ ให้ระบุเวอร์ชันเป็นตัวเลือกแยกต่างหาก:

bash
dotnet add package Doconut.NET8 --version 26.7.0

Doconut.NET8 คือ ID ของแพคเกจ ส่วนส่วนต่อท้าย .26.7.0 เป็นของชื่อไฟล์ Doconut.NET8.26.7.0.nupkg ที่ดาวน์โหลดมาและไม่ได้เป็นส่วนหนึ่งของ ID

ลงทะเบียน Doconut

AddDoconut() เป็นจุดเข้าถึงการลงทะเบียนเดียว — มี overload เพียงหนึ่งตัวและมันจะเชื่อมต่อบริการ Viewer บริการลิขสิทธิ์ และโครงสร้างพื้นฐานการเรนเดอร์เข้าไปใน DI container

การเรียก middleware สองครั้งจะทำให้การตั้งค่าสมบูรณ์และลำดับการเรียกมีความสำคัญ: UseDoconutResources() ต้องทำงานก่อน UseDoconut() UseDoconut() เป็น middleware สุดท้าย ดังนั้นการเรียกก่อนหมายความว่าคำขอทุกครั้งไปยังทรัพยากร /doconut-res จะไม่ถึงตัวจัดการทรัพยากรและจะคืน 404 การเชื่อมต่อเซสชันก็จำเป็นเช่นกัน — ความปลอดภัยเอกสารเริ่มต้นของ Doconut จะตรวจสอบคำขอทุกหน้าเทียบกับสถานะเซสชันของ ASP.NET

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // สถานะเซสชันต้องการแคช (MVC/Razor Pages ได้เพิ่มไว้แล้ว)
builder.Services.AddSession(); // ความปลอดภัยเอกสารของ Doconut ทำงานบนสถานะเซสชันของ ASP.NET

app.UseSession();          // เรียก UseSession() ก่อน UseDoconut()
app.UseDoconutResources(); // ต้องลงทะเบียนก่อน UseDoconut()
app.UseDoconut();

ตัวเลือกทั้งหมด

DoconutOptions รองรับคุณสมบัติเพิ่มเติมต่อไปนี้ ทุกค่าเป็นทางเลือก — ค่าตั้งต้นด้านล่างจะใช้เมื่อคุณสมบัตินั้นไม่ได้กำหนดค่า

PropertyDefaultDescription
ShowDoconutInfofalseเมื่อ true คำขอที่ไม่มี token จะคืนแบนเนอร์เวอร์ชันแทน 404 ใช้เป็นการตรวจสอบอย่างเร็ว; ปิดในสภาพการผลิต
UnsafeModefalseเมื่อ true จะข้ามการตรวจสอบความปลอดภัยของ ASP.NET‑session ในคำขอหน้า ปิดในสภาพการผลิต
MiddlewarePath"/doconut"ค่าประสานสำหรับ endpoint ของภาพหน้า ถูกตรวจสอบแต่ไม่ได้สร้าง branch เอง; ควรสอดคล้องกับการแมป UseDoconut() และ BasePath ของไคลเอนต์
ResourcesPath"/doconut-res"ที่ตั้งของทรัพยากร JS/CSS/รูปภาพที่ฝังอยู่
LicensePath"" (empty string)เส้นทางไปยังไฟล์ลิขสิทธิ์ ค่าว่างหมายถึงให้ค้นหาแหล่งต่อไปโดยอัตโนมัติ
LicenseContent"" (empty string)เนื้อหาลิขสิทธิ์ดิบ — จาก environment variable, secret manager หรือฐานข้อมูล
LicenseStreamnullลิขสิทธิ์เป็นสตรีม อ่านครั้งเดียวที่เริ่มต้น
ResetLicensefalseธงความเข้ากันได้สำรอง ปัจจุบัน .NET 8 services จะอ่านลิขสิทธิ์ระหว่าง AddDoconut(); รีสตาร์ทแอปหลังเปลี่ยนลิขสิทธิ์

ลำดับความสำคัญของลิขสิทธิ์เมื่อมีแหล่งมากกว่าหนึ่ง: LicenseStream มีลำดับสูงกว่า LicenseContent มีลำดับสูงกว่า LicensePath มีลำดับสูงกว่า auto‑search — ดู License Setup

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // ประสานกับการแมปของแอปและ BasePath ของไคลเอนต์
    options.ResourcesPath   = "/doconut-res"; // ตำแหน่งที่ให้บริการไฟล์ JS/CSS/รูปภาพของ viewer
    options.UnsafeMode      = false;          // รักษาความปลอดภัยของเซสชันไว้
    options.ShowDoconutInfo = false;
});

ขั้นตอนต่อไป

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