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.
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
| Typ | Vlastnost | Výchozí | Popis |
|---|---|---|---|
bool | UnsafeMode | false | Když 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. |
bool | ShowDoconutInfo | false | Když 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. |
string | ResourcesPath | "/doconut-res" | URL prefix, pod kterým modul zdrojů poskytuje vložené skripty, styly a obrázky. |
string | LicensePath | "" | Úplná cesta k souboru licence. Prázdné → další zdroj licence, pak automatické vyhledání; nic nenalezeno → vodotisková evaluační verze bez funkcí. |
string | LicenseContent | "" | Surový obsah licence (databáze, proměnná prostředí, úložiště tajemství). Má přednost před LicensePath. |
Stream? | LicenseStream | null | Licence jako stream, načtená jednou při startu. Má přednost před oběma ostatními zdroji. |
string | MiddlewarePath | "/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). |
bool | ResetLicense | false | Není používáno. Licence je načtena jednou, v DoconutHost.Initialize; po výměně licence recyklujte aplikační pool. |
DoconutPluginRegistry | PluginRegistry | — | 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
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
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
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:
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
// 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á?