DoconutOptions

Konfigurace služeb Doconut

DoconutOptions (namespace Doconut) je jediný konfigurační objekt pro celé SDK. Nastavujete jej jednou, v callbacku, který předáte DoconutHost.Initialize v Application_Start.

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>();
});

Vlastnosti

TypVlastnostVýchozíPopis
boolUnsafeModefalseKdyž false, DocImage.axd poskytuje stránku pouze ASP.NET relaci, která dokument otevřela (nebo v farmě pro prohlížeč s podepsaným tokenem). Když true, je obsloužena jakákoli žádost nesoucí token. Nechte to false — viz Sessions & Security.
boolShowDoconutInfofalseKdyž true, DocImage.axd žádost bez tokenu odpoví Doconut <version> is running on <host> místo 404. Užitečné jako rychlá kontrola; nechte false v produkci.
stringResourcesPath"/doconut-res"URL prefix, pod kterým modul zdrojů poskytuje vložené skripty, styly a obrázky.
stringLicensePath""Úplná cesta k souboru licence. Prázdné → další zdroj licence, pak automatické vyhledání; nic nenalezeno → vodotisková evaluační verze bez funkcí.
stringLicenseContent""Surový obsah licence (databáze, proměnná prostředí, úložiště tajemství). Má přednost před LicensePath.
Stream?LicenseStreamnullLicence jako stream, načtená jednou při startu. Má přednost před oběma ostatními zdroji.
stringMiddlewarePath"/doconut"Není používáno System.Web. Koncový bod stránky je vždy handler DocImage.axd deklarovaný v Web.config. Hodnota je stále ověřována při startu (viz níže).
boolResetLicensefalseNení používáno. Licence je načtena jednou, v DoconutHost.Initialize; po výměně licence recyklujte aplikační pool.
DoconutPluginRegistryPluginRegistry—Registr pouze pro čtení příspěvků pluginů, naplněný AddPlugin<T>().

Priorita licence: LicenseStream → LicenseContent → LicensePath → automatické vyhledání (viz License Setup).

Metody

AddPlugin<TPlugin>() – Registrace pluginu

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

Registruje plugin (Converter, DICOM). Fluent — vrací instanci možností. Annotation a Search jsou vestavěné licencované funkce a nepoužívají jej.

Pokud žádná aktivní licence nepřiděluje schopnost pluginu, DoconutHost.Initialize vyhodí InvalidOperationException z Application_Start a stránka odpovídá na každou žádost prázdným 500, dokud není opraveno; zpráva je v Windows event logu (viz Plugin System).

Add…Widget() – Přidání widgetu

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

Vkládané widgety jsou ve výchozím nastavení vypnuté. Každé volání Add…Widget() zapíná koncové body tohoto widgetu na DocImage.axd a vyžaduje, aby odpovídající plugin byl registrován. Modul zdrojů poskytuje skript widgetu bez ohledu na to, zda jste jej povolili, takže widget, který se načte a vykreslí, ale při první akci odpoví 404, postrádá toto volání. Widget Converter je zdokumentován v Converter Plugin.

RegisterViewer(extension, factory, defaultConfig?) – Registrace vlastního prohlížeče

text
DoconutOptions RegisterViewer(
    string extension,                    // ".myext" — volitelná úvodní tečka
    Func<IFormatViewer> factory,
    Func<BaseConfig>? defaultConfig = null)

Registruje vlastní prohlížeč pro příponu souboru. Vlastní prohlížeče mají přednost před vestavěnými a pluginovými prohlížeči a nejsou omezeny licencí. Když je defaultConfig vynecháno a dokument se otevře bez explicitní konfigurace, použije se ImageConfig.

Vyhodí ArgumentException (Extension must be a non-empty file extension.) pro prázdnou příponu a ArgumentNullException pro nulový factory.

Ověření při spuštění

DoconutHost.Initialize ověřuje možnosti před vytvořením čehokoliv:

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 je kontrolováno, i když System.Web jej nikdy nepoužívá, takže jej nechte v výchozím nastavení. Stejně jako každá výjimka vyhozená z Application_Start, selhání validace se projeví jako prázdný 500 u každé žádosti, se zprávou v Windows event logu.

Běžné konfigurace

csharp
// Produkce: explicitní licence, vše ostatní v bezpečném výchozím nastavení.
public static void ProductionLicense() =>
    Doconut.DoconutHost.Initialize(options =>
    {
        options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
    });

// Vlastní cesta k prostředkům (např. pro vyhnutí se konfliktu trasy). Zachovejte ResPath prohlížeče a jakýkoli MVC
// IgnoreRoute v souladu s tím: "/docs-assets" znamená ResPath: 'docs-assets/images'.
public static void CustomResourcePath() =>
    Doconut.DoconutHost.Initialize(options =>
    {
        options.ResourcesPath = "/docs-assets";
    });

Když změníte ResourcesPath, změňte najednou tři věci: možnost, ResPath widgetu ('docs-assets/images' pro "/docs-assets") a v MVC IgnoreRoute pro cestu zdroje (routes.IgnoreRoute("docs-assets/{*pathInfo}")). Koncový bod DocImage.axd se nepřesouvá: jeho cesta je nastavena atributem path handleru v Web.config.

Byla tato stránka užitečná?