التثبيت
إضافة Doconut إلى مشروع .NET 6 الخاص بك
المشاهد الأساسي Doconut لـ .NET 6 يُوزَّع كحزمة NuGet واحدة يمكن دمجها في أي تطبيق ASP.NET Core. الإضافات الاختيارية تستخدم حزمًا منفصلة. تُثبت هذه الصفحة الحزمة الأساسية وتُسجِّل middleware — الحد الأدنى المطلوب قبل أول عملية عرض لك.
تثبيت الحزمة
dotnet add package Doconut.NET6الأمر غير المحدد للنسخة يثبت أحدث إصدار ثابت. لإعادة إنتاج الإصدار الحالي 26.7.0 بدقة، مرّر النسخة كخيار منفصل:
dotnet add package Doconut.NET6 --version 26.7.0Doconut.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.
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 تقبل الخصائص القابلة للتعيين التالية. كل واحدة منها اختيارية — القيم الافتراضية أدناه تُطبق عندما تُترك الخاصية غير مُحددة.
| الخاصية | القيمة الافتراضية | الوصف |
|---|---|---|
ShowDoconutInfo | false | عند true، يُعيد الطلب بدون token لافتة نسخة بدلاً من 404. مفيد كفحص سريع؛ يُفضل إيقافه في الإنتاج. |
UnsafeMode | false | عند true، يتخطى فحص أمان جلسة ASP.NET على طلبات الصفحات. يُفضل إيقافه في الإنتاج. |
MiddlewarePath | "/doconut" | قيمة التنسيق لنقطة النهاية page-image. يتم التحقق منها، لكنها لا تُنشئ فرعًا بحد ذاتها؛ حافظ على توافقها مع تعيين UseDoconut() الفعلي ومسار BasePath للعميل. |
ResourcesPath | "/doconut-res" | المكان الذي تُقدم منه موارد JS/CSS/الصورة المدمجة. |
LicensePath | "" (empty string) | مسار ملف الترخيص. إذا كان فارغًا يعني الانتقال إلى المصدر التالي، ثم البحث التلقائي. |
LicenseContent | "" (empty string) | محتوى الترخيص الخام — من متغيّر بيئي، أو مدير أسرار، أو قاعدة بيانات. |
LicenseStream | null | الترخيص كتيار، يُقرأ مرة واحدة عند بدء التشغيل. |
ResetLicense | false | علامة توافقية محجوزة. خدمات .NET 6 الحالية تقرأ الترخيص أثناء AddDoconut()؛ أعد تشغيل التطبيق بعد استبدال الترخيص. |
أولوية الترخيص عندما يتم تعيين أكثر من مصدر: LicenseStream يتفوق على LicenseContent ثم LicensePath ثم البحث التلقائي — انظر إعداد الترخيص.
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;
});الخطوات التالية
- البدء السريع — افتح مستندك الأول وعرضه في المتصفح.
- إعداد الترخيص — حيث يبحث Doconut عن ملف الترخيص الخاص بك.
هل كانت هذه الصفحة مفيدة؟