DoconutOptions

Doconut hizmetlerini yapılandırın

DoconutOptions (namespace Doconut) bütün SDK için tek yapılandırma nesnesidir. Bunu bir kez, Application_Start içinde DoconutHost.Initialize'a geçirdiğiniz geri çağrıda yapılandırırsınız.

csharp
Doconut.DoconutHost.Initialize(options =>
{
    options.LicensePath     = HostingEnvironment.MapPath("~/wwwroot/Doconut.Viewer.lic");
    options.UnsafeMode      = false;
    options.ShowDoconutInfo = false;
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

Özellikler

TürÖzellikVarsayılanAçıklama
boolUnsafeModefalsefalse olduğunda, DocImage.axd yalnızca belgeyi açan ASP.NET oturumuna (veya bir farm içinde, imzalı bir bilet adı taşıyan tarayıcıya) bir sayfa sunar. true olduğunda, token taşıyan herhangi bir istek sunulur. Bunu false bırakın — bkz. Oturumlar ve Güvenlik.
boolShowDoconutInfofalsetrue olduğunda, token içermeyen bir DocImage.axd isteği 404 yerine Doconut <version> is running on <host> yanıtını verir. Bir sağlık kontrolü olarak faydalıdır; üretimde false bırakın.
stringResourcesPath"/doconut-res"Kaynak modülünün gömülü script, stil ve görüntüleri hizmet verdiği URL öneki.
stringLicensePath""Lisans dosyasının tam yolu. Boş → bir sonraki lisans kaynağı, ardından otomatik keşif; hiçbir şey bulunamazsa → yetenekleri olmayan su işareti ekli değerlendirme.
stringLicenseContent""Ham lisans içeriği (veritabanı, ortam değişkeni, gizli depo). LicensePath'e göre önceliklidir.
Stream?LicenseStreamnullLisans bir akış olarak, başlangıçta bir kez okunur. Diğer iki kaynağa göre önceliklidir.
stringMiddlewarePath"/doconut"System.Web tarafından kullanılmaz. Sayfa uç noktası her zaman Web.config içinde bildirilen DocImage.axd işleyicisidir. Değer yine de başlangıçta doğrulanır (aşağıya bakın).
boolResetLicensefalseKullanılmaz. Lisans bir kez, DoconutHost.Initialize içinde okunur; bir lisans değiştirildikten sonra uygulama havuzunu yeniden başlatın.
DoconutPluginRegistryPluginRegistry—AddPlugin<T>() ile doldurulan, eklenti katkılarının yalnızca okunabilir kaydı.

Lisans önceliği: LicenseStream → LicenseContent → LicensePath → otomatik keşif (bkz. Lisans Kurulumu).

Yöntemler

AddPlugin<TPlugin>()

text
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()

Bir eklentiyi (Dönüştürücü, DICOM) kaydeder. Akıcı — seçenek örneğini döndürür. Annotation ve Search yerleşik lisanslı özelliklerdir ve bunu kullanmaz.

Eğer aktif bir lisans eklentinin yeteneğini sağlamıyorsa, DoconutHost.Initialize Application_Start içinde InvalidOperationException fırlatır ve site, bu düzeltilene kadar her isteğe boş bir 500 yanıt verir; mesaj Windows olay günlüğündedir (bkz. Eklenti Sistemi).

Add…Widget()

text
DoconutOptions AddConverterWidget(Action<ConverterWidgetOptions>? configure = null)

Yerleştirilebilir widget'lar varsayılan olarak kapalıdır. Her Add…Widget() çağrısı, o widget'ın DocImage.axd üzerindeki uç noktalarını açar ve eşleşen eklentinin kaydedilmiş olmasını gerektirir. Kaynak modülü, widget'ı etkinleştirip etkinleştirmemenize bakılmaksızın script'ini sunar; bu yüzden ilk eyleminde 404 yanıtı veren, yüklenen ve çizen bir widget bu çağrının eksik olduğunu gösterir. Converter widget'ı Dönüştürücü Eklentisi içinde belgelenmiştir.

RegisterViewer(extension, factory, defaultConfig?)

text
DoconutOptions RegisterViewer(
    string extension,                    // ".myext" — leading dot optional
    Func<IFormatViewer> factory,
    Func<BaseConfig>? defaultConfig = null)

Bir dosya uzantısı için özel görüntüleyici kaydeder. Özel görüntüleyiciler, yerleşik ve eklenti görüntüleyicilere göre önceliklidir ve lisans kısıtlaması yoktur. defaultConfig atlandığında ve bir belge açık bir yapılandırma olmadan açıldığında, bir ImageConfig kullanılır.

Boş bir uzantı için ArgumentException (Extension must be a non-empty file extension.) ve null bir fabrika için ArgumentNullException fırlatır.

Başlangıç doğrulaması

DoconutHost.Initialize, herhangi bir şey inşa etmeden önce seçenekleri doğrular:

text
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 hiç kullanmasa da kontrol edilir, bu yüzden varsayılanında bırakın. Application_Start içinde fırlatılan her istisna gibi, bir doğrulama hatası her istekte boş bir 500 olarak görünür ve mesaj Windows olay günlüğündedir.

Yaygın yapılandırmalar

csharp
// Production: explicit license, everything else at its secure default.
public static void ProductionLicense() =>
    Doconut.DoconutHost.Initialize(options =>
    {
        options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
    });

// Custom resource path (e.g. to avoid a route conflict). Keep the viewer's ResPath and any MVC
// IgnoreRoute in step with it: "/docs-assets" means ResPath: 'docs-assets/images'.
public static void CustomResourcePath() =>
    Doconut.DoconutHost.Initialize(options =>
    {
        options.ResourcesPath = "/docs-assets";
    });

ResourcesPath'i değiştirdiğinizde, üç şeyi birlikte değiştirin: seçeneği, widget'ın ResPath'ini ("/docs-assets" için 'docs-assets/images'), ve MVC'de kaynak yolu için IgnoreRoute'u (routes.IgnoreRoute("docs-assets/{*pathInfo}")). DocImage.axd uç noktası hareket etmez: yolu Web.config içindeki işleyicinin path özniteliği tarafından belirlenir.

Bu sayfa yardımcı oldu mu?