التثبيت

إضافة Doconut إلى مشروع .NET 6 الخاص بك

المشاهد الأساسي Doconut لـ .NET 6 يُوزَّع كحزمة NuGet واحدة يمكن دمجها في أي تطبيق ASP.NET Core. الإضافات الاختيارية تستخدم حزمًا منفصلة. تُثبت هذه الصفحة الحزمة الأساسية وتُسجِّل middleware — الحد الأدنى المطلوب قبل أول عملية عرض لك.

تثبيت الحزمة

bash
dotnet add package Doconut.NET6

الأمر غير المحدد للنسخة يثبت أحدث إصدار ثابت. لإعادة إنتاج الإصدار الحالي 26.7.0 بدقة، مرّر النسخة كخيار منفصل:

bash
dotnet add package Doconut.NET6 --version 26.7.0

Doconut.NET6 هو معرف الحزمة. اللاحقة .26.7.0 تخص اسم الملف الذي تم تنزيله Doconut.NET6.26.7.0.nupkg ولا تُعد جزءًا من المعرف.

تحديد التكامل قبل الترقية

تم استخدام معرف الحزمة Doconut.NET6 لكل من التكامل الكلاسيكي والحالي لـ .NET 6. لا تختَر الوثائق بناءً على اسم الحزمة فقط:

  • DocImage.axd، new Viewer(_cache, _accessor, ...)، OpenDocument(...) المتزامن، والسكريبتات المنسوخة يدويًا للمشاهد تُشير إلى التكامل الكلاسيكي;
  • AddDoconut(), UseDoconutResources(), مشاهد Viewer المُحقن، وOpenDocumentAsync(...) تُشير إلى التكامل الحالي الموثّق هنا.

الدليل المترجم لإعداد التكامل الكلاسيكي لا يزال متاحًا. استخدم دليل الترحيل لتغيير الأجيال؛ تحديث الحزمة العادي لا يُحوِّل إعداد بدء التشغيل، أو عمر المشاهد، أو موارد المتصفح تلقائيًا.

تسجيل Doconut

AddDoconut() هو نقطة الدخول الوحيدة للتسجيل — هناك نسخة واحدة فقط، وهو يربط خدمة Viewer، وخدمة الترخيص، وبنية العرض داخل حاوية DI.

يُكمل استدعاء middlewareين الإعداد، وترتيبهما مهم: يجب تشغيل UseDoconutResources() قبل UseDoconut(). UseDoconut() هو middleware نهائي، لذا استدعاؤه أولاً يعني أن كل طلب إلى مورد /doconut-res لن يصل إلى معالج الموارد ويُعيد خطأ 404. ربط الجلسة مطلوب أيضًا — أمان المستند الافتراضي لـ Doconut يتحقق من كل طلب صفحة مقابل حالة جلسة ASP.NET.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddSession(); // Doconut document security rides on ASP.NET session state

app.UseSession();          // call UseSession() before UseDoconut()
app.UseDoconutResources(); // must be registered before UseDoconut()
app.UseDoconut();

جميع الخيارات

DoconutOptions تقبل الخصائص القابلة للتعيين التالية. كل واحدة منها اختيارية — القيم الافتراضية أدناه تُطبق عندما تُترك الخاصية غير مُحددة.

الخاصيةالقيمة الافتراضيةالوصف
ShowDoconutInfofalseعند true، يُعيد الطلب بدون token لافتة نسخة بدلاً من 404. مفيد كفحص سريع؛ يُفضل إيقافه في الإنتاج.
UnsafeModefalseعند true، يتخطى فحص أمان جلسة ASP.NET على طلبات الصفحات. يُفضل إيقافه في الإنتاج.
MiddlewarePath"/doconut"قيمة التنسيق لنقطة النهاية page-image. يتم التحقق منها، لكنها لا تُنشئ فرعًا بحد ذاتها؛ حافظ على توافقها مع تعيين UseDoconut() الفعلي ومسار BasePath للعميل.
ResourcesPath"/doconut-res"المكان الذي تُقدم منه موارد JS/CSS/الصورة المدمجة.
LicensePath"" (empty string)مسار ملف الترخيص. إذا كان فارغًا يعني الانتقال إلى المصدر التالي، ثم البحث التلقائي.
LicenseContent"" (empty string)محتوى الترخيص الخام — من متغيّر بيئي، أو مدير أسرار، أو قاعدة بيانات.
LicenseStreamnullالترخيص كتيار، يُقرأ مرة واحدة عند بدء التشغيل.
ResetLicensefalseعلامة توافقية محجوزة. خدمات .NET 6 الحالية تقرأ الترخيص أثناء AddDoconut()؛ أعد تشغيل التطبيق بعد استبدال الترخيص.

أولوية الترخيص عندما يتم تعيين أكثر من مصدر: LicenseStream يتفوق على LicenseContent ثم LicensePath ثم البحث التلقائي — انظر إعداد الترخيص.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // coordinate with app mapping and client BasePath
    options.ResourcesPath   = "/doconut-res"; // where the viewer's JS/CSS/images are served from
    options.UnsafeMode      = false;          // keep session security on
    options.ShowDoconutInfo = false;
});

الخطوات التالية

هل كانت هذه الصفحة مفيدة؟