DoconutOptions
กำหนดค่าบริการ Doconut
DoconutOptions (namespace Doconut) คืออ็อบเจ็กต์การกำหนดค่าเดียวสำหรับ SDK ทั้งหมด คุณกำหนดค่าเพียงครั้งเดียวในคอลแบ็กที่คุณส่งให้กับ DoconutHost.Initialize ใน Application_Start.
Doconut.DoconutHost.Initialize(options =>
{
options.LicensePath = HostingEnvironment.MapPath("~/wwwroot/Doconut.Viewer.lic");
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});คุณสมบัติ
| ประเภท | คุณสมบัติ | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
bool | UnsafeMode | false | เมื่อ false, DocImage.axd ให้บริการหน้าเฉพาะกับเซสชัน ASP.NET ที่เปิดเอกสาร (หรือในฟาร์ม ให้กับเบราว์เซอร์ที่มีบัตรลงนาม) เมื่อ true, คำขอใด ๆ ที่มีโทเคนจะได้รับการให้บริการ ปล่อยไว้เป็น false — ดู เซสชันและความปลอดภัย. |
bool | ShowDoconutInfo | false | เมื่อ true, คำขอ DocImage.axd ที่ไม่มีโทเคนจะตอบกลับเป็น Doconut <version> is running on <host> แทน 404. มีประโยชน์เป็นการตรวจสอบเบื้องต้น; ปล่อยไว้เป็น false ในการผลิต. |
string | ResourcesPath | "/doconut-res" | คำนำหน้า URL ที่โมดูลทรัพยากรให้บริการสคริปต์, สไตล์, และรูปภาพที่ฝังอยู่. |
string | LicensePath | "" | เส้นทางเต็มไปยังไฟล์ใบอนุญาต. ว่าง → แหล่งใบอนุญาตถัดไป, จากนั้นการค้นหาอัตโนมัติ; ไม่พบ → การประเมินที่มีลายน้ำโดยไม่มีความสามารถ. |
string | LicenseContent | "" | เนื้อหาใบอนุญาตดิบ (ฐานข้อมูล, ตัวแปรสภาพแวดล้อม, ที่เก็บความลับ). มีลำดับความสำคัญเหนือ LicensePath. |
Stream? | LicenseStream | null | ใบอนุญาตเป็นสตรีม, อ่านครั้งเดียวที่เริ่มต้น. มีลำดับความสำคัญเหนือแหล่งอื่นทั้งสอง. |
string | MiddlewarePath | "/doconut" | ไม่ได้ใช้โดย System.Web. จุดสิ้นสุดของหน้าเป็นเสมอตัวจัดการ DocImage.axd ที่ประกาศใน Web.config. ค่ายังคงถูกตรวจสอบที่การเริ่มต้น (ดูด้านล่าง). |
bool | ResetLicense | false | ไม่ได้ใช้. ใบอนุญาตอ่านครั้งเดียวใน DoconutHost.Initialize; รีไซเคิลพูลแอปพลิเคชันหลังจากเปลี่ยนใบอนุญาต. |
DoconutPluginRegistry | PluginRegistry | — | รีจิสทรีแบบอ่านอย่างเดียวของการมีส่วนร่วมของปลั๊กอิน, เติมโดย AddPlugin<T>(). |
ลำดับความสำคัญของใบอนุญาต: LicenseStream → LicenseContent → LicensePath → การค้นหาอัตโนมัติ (ดู การตั้งค่าใบอนุญาต).
วิธีการ
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()ลงทะเบียนปลั๊กอิน (Converter, DICOM). แบบ fluent — คืนค่าอินสแตนซ์ของ options. Annotation และ Search เป็นฟีเจอร์ที่มีใบอนุญาตในตัวและไม่ได้ใช้มัน.
หากไม่มีใบอนุญาตที่ใช้งานอยู่ให้สิทธิ์ความสามารถของปลั๊กอิน, DoconutHost.Initialize จะโยน InvalidOperationException จาก Application_Start, และไซต์จะตอบทุกคำขอด้วย 500 ว่างจนกว่าจะถูกแก้ไข; ข้อความอยู่ในบันทึกเหตุการณ์ของ Windows (ดู ระบบปลั๊กอิน).
Add…Widget()
DoconutOptions AddConverterWidget(Action<ConverterWidgetOptions>? configure = null)วิดเจ็ตแบบ drop-in มีค่า ปิดโดยค่าเริ่มต้น. แต่ละการเรียก Add…Widget() จะเปิดจุดสิ้นสุดของวิดเจ็ตนั้นบน DocImage.axd, และต้องการให้ปลั๊กอินที่ตรงกันถูกลงทะเบียน. โมดูลทรัพยากรให้บริการสคริปต์ของวิดเจ็ตไม่ว่าคุณจะเปิดใช้งานหรือไม่, ดังนั้นวิดเจ็ตที่โหลดและวาดแต่ตอบ 404 ในการกระทำแรกของมันแสดงว่าขาดการเรียกนี้. วิดเจ็ต Converter มีเอกสารใน ปลั๊กอิน Converter.
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // .myext — จุดนำหน้าเป็นตัวเลือก
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)ลงทะเบียน ผู้ดูแบบกำหนดเอง สำหรับส่วนขยายไฟล์. ผู้ดูแบบกำหนดเองมีลำดับความสำคัญเหนือผู้ดูในตัวและผู้ดูจากปลั๊กอินและไม่ได้ถูกจำกัดโดยใบอนุญาต. เมื่อ defaultConfig ถูกละเว้นและเอกสารเปิดโดยไม่มีการกำหนดค่าอย่างชัดเจน, จะใช้ ImageConfig.
โยน ArgumentException (Extension must be a non-empty file extension.) สำหรับส่วนขยายว่างและ ArgumentNullException สำหรับ factory ที่เป็น null.
การตรวจสอบการเริ่มต้น
DoconutHost.Initialize ตรวจสอบความถูกต้องของ options ก่อนสร้างอะไรเลย:
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.MiddlewarePath ถูกตรวจสอบแม้ว่า System.Web จะไม่เคยใช้มัน, ดังนั้นปล่อยไว้ที่ค่าเริ่มต้น. เช่นข้อยกเว้นทุกข้อที่โยนจาก Application_Start, ความล้มเหลวในการตรวจสอบจะแสดงเป็น 500 ว่างในทุกคำขอ, พร้อมข้อความในบันทึกเหตุการณ์ของ Windows.
การกำหนดค่าทั่วไป
// Production: ใบอนุญาตที่ชัดเจน, ส่วนที่เหลือทั้งหมดใช้ค่าเริ่มต้นที่ปลอดภัย.
public static void ProductionLicense() =>
Doconut.DoconutHost.Initialize(options =>
{
options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
});
// Custom resource path (e.g. เพื่อหลีกเลี่ยงความขัดแย้งของเส้นทาง). Keep the viewer’s ResPath and any MVC
// IgnoreRoute in step with it: "/docs-assets" หมายถึง ResPath: 'docs-assets/images'.
public static void CustomResourcePath() =>
Doconut.DoconutHost.Initialize(options =>
{
options.ResourcesPath = "/docs-assets";
});เมื่อคุณเปลี่ยน ResourcesPath, ให้เปลี่ยนสามอย่างพร้อมกัน: ตัวเลือก, ResPath ของวิดเจ็ต ('docs-assets/images' สำหรับ "/docs-assets"), และใน MVC, IgnoreRoute สำหรับเส้นทางทรัพยากร (routes.IgnoreRoute("docs-assets/{*pathInfo}")). จุดสิ้นสุด DocImage.axd ไม่ย้าย: เส้นทางของมันถูกตั้งค่าโดยแอตทริบิวต์ path ของตัวจัดการใน Web.config.
หน้านี้เป็นประโยชน์หรือไม่?