DoconutOptions
Konfigurera Doconut-tjänsterna
DoconutOptions (namespace Doconut) är det enda konfigurationsobjektet för hela SDK:n. Du konfigurerar det en gång, i callback‑funktionen du skickar till DoconutHost.Initialize i 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>();
});Egenskaper
| Typ | Egenskap | Standard | Beskrivning |
|---|---|---|---|
bool | UnsafeMode | false | När false, levererar DocImage.axd en sida endast till den ASP.NET‑session som öppnade dokumentet (eller, i en farm, till webbläsaren med ett signerat biljett‑namn). När true, serveras alla förfrågningar som bär token. Lämna den false — se Sessioner & Säkerhet. |
bool | ShowDoconutInfo | false | När true, svarar en DocImage.axd‑förfrågan utan token med Doconut <version> is running on <host> istället för 404. Användbart som en snabbkontroll; lämna false i produktion. |
string | ResourcesPath | "/doconut-res" | URL‑prefix under vilket resursmodulen levererar de inbäddade skripten, stilarna och bilderna. |
string | LicensePath | "" | Fullständig sökväg till licensfilen. Tom → nästa licenskälla, sedan automatisk upptäckt; inget hittas → vattenmärkt utvärdering utan funktioner. |
string | LicenseContent | "" | Rå licensinnehåll (databas, miljövariabel, hemlig lagring). Har företräde framför LicensePath. |
Stream? | LicenseStream | null | Licens som en ström, läses en gång vid start. Har företräde framför båda andra källor. |
string | MiddlewarePath | "/doconut" | Används inte av System.Web. Sid‑endpointen är alltid DocImage.axd‑hanteraren som deklarerats i Web.config. Värdet valideras fortfarande vid start (se nedan). |
bool | ResetLicense | false | Används inte. Licensen läses en gång, i DoconutHost.Initialize; återställ applikationspoolen efter att ha ersatt en licens. |
DoconutPluginRegistry | PluginRegistry | — | Skrivskyddad register över plugin‑bidrag, fyllt av AddPlugin<T>(). |
Licensprioritet: LicenseStream → LicenseContent → LicensePath → automatisk upptäckt (se Licensinställning).
Metoder
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Registrerar en plugin (Converter, DICOM). Fluent — returnerar options‑instansen. Annotation och Search är inbyggda licensierade funktioner och använder den inte.
Om ingen aktiv licens beviljar pluginens funktion, kastar DoconutHost.Initialize InvalidOperationException från Application_Start, och webbplatsen svarar på varje förfrågan med en tom 500 tills det är åtgärdat; meddelandet finns i Windows‑händelseloggen (se Plugin‑systemet).
Add…Widget()
DoconutOptions AddConverterWidget(Action<ConverterWidgetOptions>? configure = null)De inbyggda widgetarna är avstängda som standard. Varje Add…Widget()‑anrop slår på widgetens endpoints på DocImage.axd, och kräver att motsvarande plugin är registrerad. Resursmodulen levererar widgetens skript oavsett om du har aktiverat den, så en widget som laddas och ritar men svarar 404 på sin första åtgärd saknar detta anrop. Converter‑widgeten är dokumenterad i Converter‑plugin.
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — inledande punkt är valfri
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)Registrerar en anpassad visare för en filändelse. Anpassade visare har företräde framför inbyggda och plugin‑visare och är inte licensbegränsade. När defaultConfig utelämnas och ett dokument öppnas utan en explicit konfiguration, används en ImageConfig.
Kastar ArgumentException (Extension must be a non-empty file extension.) för en tom filändelse och ArgumentNullException för en null‑factory.
Uppstartsvalidering
DoconutHost.Initialize validerar alternativen innan något byggs:
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 kontrolleras även om System.Web aldrig använder den, så låt den vara på standardvärdet. Precis som varje undantag som kastas från Application_Start, visas ett valideringsfel som en tom 500 på varje förfrågan, med meddelandet i Windows‑händelseloggen.
Vanliga konfigurationer
// Production: explicit licens, allt annat på dess säkra standardvärde.
public static void ProductionLicense() =>
Doconut.DoconutHost.Initialize(options =>
{
options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
});
// Anpassad resursväg (t.ex. för att undvika en ruttkonflikt). Behåll visarens ResPath och eventuell MVC
// IgnoreRoute i steg med den: "/docs-assets" betyder ResPath: 'docs-assets/images'.
public static void CustomResourcePath() =>
Doconut.DoconutHost.Initialize(options =>
{
options.ResourcesPath = "/docs-assets";
});När du ändrar ResourcesPath, ändra tre saker samtidigt: alternativet, widgetens ResPath ('docs-assets/images' för "/docs-assets"), och, i MVC, IgnoreRoute för resursvägen (routes.IgnoreRoute("docs-assets/{*pathInfo}")). DocImage.axd‑endpointen flyttar inte: dess sökväg sätts av handlerns path‑attribut i Web.config.
Var den här sidan hjälpsam?