DoconutExtensions

Servis ve ara katman kaydı

DoconutExtensions (namespace Doconut.Middleware) her Doconut ana bilgisayarının yaptığı üç çağrıyı içeren statik sınıftır: bir hizmet kaydı ve iki ara katman kaydı.

csharp
builder.Services.AddDoconut(options => { /* … */ });
// …
app.UseDoconutResources(); // BEFORE UseDoconut()
app.UseDoconut();

AddDoconut (Ekle)

text
IServiceCollection AddDoconut(this IServiceCollection services, Action<DoconutOptions>? configure = null)

DoconutOptions oluşturur, hızlı hata kontrolü yapar (bkz. DoconutOptions → Başlangıç doğrulaması) ve tam hizmet grafiğini kaydeder:

ServisÖmürRol
DoconutOptionsSingletonYapılandırma nesnesi
IViewerFactorySingletonUzantıları format görüntüleyicilerine eşler
IDocumentSessionManagerSingletonToken → oturum önbelleği (IMemoryCache de kaydedilir)
IDoconutLicenseServiceSingletonLisans başlangıçta bir kez yüklenir (öncelik: LicenseStreamLicenseContentLicensePath → otomatik arama)
PageImageServiceSingletonSayfa‑görüntü işlem hattı (filigran/döndürme/ölçekleme/annotasyonlar)
Document security (access store)SingletonToken‑oturum bağlaması için izinler
ViewerTransientKamu açık/kapalı arayüzü
DocumentConverterTransientDönüştürme arayüzü — Converter eklentisi gerekir
Sağlık kontrolü "doconut"Lisans/son kullanma durumunu ASP.NET sağlık kontrolleri aracılığıyla raporlar

Bilmeniz gereken iki davranış:

  • Converter eklentisi gerekir. DocumentConverteroptions.AddPlugin<ConverterPlugin>() olmadan çözümlemeye çalışmak şu hatayı verir:
text
InvalidOperationException: No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().
  • Eklenti yetkisi başlangıçta doğrulanır. Eksik bir lisans, eski TRIAL dosyası veya kayıtlı bir eklentinin yeteneği olmadan alınan ücretli lisans AddDoconut() sırasında başarısız olur. Geçici/Demo kayıtları son kullanma tarihlerini geçse bile devam eder, ancak çalışma zamanındaki kontroller süresi dolmuş yetenekleri iptal eder.

Sağlık kontrolü standart ASP.NET Core mekanizmasıyla bütünleşir — lisans durumunu sağlık uç noktanızda görmek istiyorsanız haritalayın:

csharp
app.MapHealthChecks("/health");

UseDoconut (Kullan)

text
IApplicationBuilder UseDoconut(this IApplicationBuilder app)

Doconut sayfa‑görüntü ara katmanını ekler. ?token= sorgu parametresini taşıyan her isteğe yanıt verir — sayfalar, küçük resimler, arama, annotasyonlar, sayfa eylemleri (tam istek tablosu Core Concepts → How the Viewer Works içinde bulunur). UnsafeMode false olduğunda, belge‑güvenlik katmanı otomatik olarak önceden bağlanır.

Referans örneği, widget isteklerini bir yol dalı üzerinden yönlendirir:

csharp
app.MapWhen(
    ctx => ctx.Request.Path.Value?.EndsWith("DocImage.axd", StringComparison.OrdinalIgnoreCase) == true,
    branch => branch.UseDoconut());

UseDoconutResources (Kaynakları Kullan)

text
IApplicationBuilder UseDoconutResources(this IApplicationBuilder app)

DoconutOptions.ResourcesPath (varsayılan /doconut-res) konumunda gömülü JS, CSS, görüntüler ve yazı tiplerini sunar. Bunlar Viewer.ReferenceCss() / ReferenceScripts() tarafından etiket üreten dosyalardır.

Her zaman UseDoconut()'dan önce çağırın. Görüntüleyici alanı boş kalır ve tarayıcı konsolu /doconut-res/... için 404 hataları gösteriyorsa, bu çağrı eksik ya da yanlış konumda demektir.

Sıralama Özeti

csharp
app.UseRouting();
app.UseSession();          // required when UnsafeMode = false
app.UseDoconutResources(); // 1st Doconut call
app.UseDoconut();          // 2nd Doconut call (or via a MapWhen branch)

Bu sayfa yardımcı oldu mu?