Felsökning

Diagnostisera vanliga fel

Varje meddelande nedan är den exakta text som Doconut producerar, organiserad efter symtom. Hitta ditt fel, tillämpa lösningen.

Visaren visar ingenting

Tomt visningsområde, webbläsarkonsolen full av 404-fel för /doconut-res/...
UseDoconutResources() saknas, eller är placerad efter UseDoconut(). Den måste komma först i pipelinen.

HTTP 500 med:

text
Session middleware not configured. Call UseSession() before UseDoconut().

Doconuts token‑säkerhet (aktiverad som standard) kräver ASP.NET‑sessionsstatus. Lägg till builder.Services.AddSession() och app.UseSession() före Doconut‑middleware‑grenen. Sessionsstatus behöver också en cache: i en minimal‑API‑app lägg till builder.Services.AddDistributedMemoryCache(), annars stoppas appen vid start med Unable to resolve service for type 'IDistributedCache' (MVC‑ och Razor‑Pages‑appar registrerar redan en).

En felbild i sidområdet med texten:

text
You Are Not Authorized To View This Page.

Tokenet öppnades av en annan webbläsarsession. Vanliga orsaker: sessions‑cookien når inte sidans förfrågningar (cross‑origin‑inställning, SameSite‑policy, en API‑klient utan cookie‑behållare), eller så startade appen om (nya sessionsnycklar). Detta är säkerhetslagret som fungerar som avsett — se Grundläggande koncept → Sessioner & Säkerhet.

En felbild med texten:

text
Document session not found. Please re-open document.

Tokenet har gått ut (glidande fönster, standard 60 minuter — DocOptions.TimeOut) eller sessionen har stängts. Öppna dokumentet igen för ett nytt token.

Servern är i ordning men sidan beter sig fel — utan några fel någonstans

Detta är felmoderna att misstänka först efter att ha flyttat en applikation framåt. Alla tre lämnar servern i perfekt skick, renderar dokumentet korrekt och rapporterar inget i webbläsarkonsolen.

En snurrande indikator som aldrig slutar. Dina visar‑återuppringningar är deklarerade som globala funktioner namngivna efter container‑id‑t — ctlDoc_OnViewerReady() och liknande. Den tidigare visaren letade upp dessa namn; den här gör det inte. Händelsehanteraren som skulle ha dolt indikatorn körs helt enkelt aldrig. Skicka funktionerna som alternativ istället:

javascript
objctlDoc = $('#div_ctlDoc').docViewer({
    onViewerBusy:     ctlDoc_OnViewerBusy,
    onViewerReady:    ctlDoc_OnViewerReady,
    onCopy:           ctlDoc_Copy,
    onAutoLoadStatus: ctlDoc_AutoLoadStatus
});

Dokumentet bakom indikatorn är i ordning. Den fullständiga alternativlistan finns i Visningskonfiguration.

Saknade visar‑ikoner eller ram, sidor annars korrekta. ResPath är tom eller pekar på applikationsroten — korrekt i det tidigare biblioteket, felaktig här. Den måste ange prefixet som UseDoconutResources() monterar:

javascript
ResPath: 'doconut-res/images'   // or '<your ResourcesPath>/images'

Trasiga rutor för senare sidor när de serveras från delat lagringsutrymme. Sidor som fortfarande skrivs svarar med 202 Accepted. En klient utan retryOn409: true behandlar detta som en misslyckad bild. Se Distribuerade distributioner.

Öppning av ett dokument misslyckas

LicenseException med ett avvisningsmeddelande — licensfilen hittades men avvisades (ogiltig signatur, manipulerad, svartlistad, eller en byggnad utanför licensens versions‑/uppdateringsfönster). Detta tillstånd blockerar öppning (fail‑fast) snarare än att degraderas till ett vattenstämpel; läs License.RejectionMessage för orsaken.

LicenseException:

text
This document type requires the 'Dicom' plugin license.

Utökningen hanteras endast av ett plugin (här: DICOM) och funktionen är inte längre beviljad. Registrera pluginet och verifiera lic.IsCapabilityGranted(LicenseCapability.Dicom). En saknad eller otillräcklig icke‑tillfällig rättighet misslyckas normalt tidigare under AddDoconut().

FormatNotSupportedException:

text
Document format '<extension>' is not supported.

Ingen visare — inbyggd, plugin eller anpassad — stödjer den filändelsen. Kontrollera listan över stödda format; för egna format kan DoconutOptions.RegisterViewer lägga till en.

InvalidDataException — filens innehåll är korrupt eller matchar inte dess filändelse (t.ex. en omdöpt fil). Validera uppladdningar innan de öppnas.

InvalidOperationException:

text
No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().

Du löste DocumentConverter utan att registrera Converter‑pluginet.

Uppstart misslyckas

InvalidOperationException som nämner ett plugin registrerat via AddPlugin — den aktuella icke‑tillfälliga licensen ger inte den plugin‑kapaciteten. Ta bort registreringen eller installera en licens som beviljar den. En saknad licens och en äldre TRIAL‑fil ger inga plugin‑kapaciteter.

ArgumentException från AddDoconut():

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.

Fail‑fast‑validering av alternativ — åtgärda den felaktiga sökvägen.

Bygg‑ och beroende‑fel

Paketet kommer inte att installeras alls — Doconut.NETStandard 26.8.0 riktar sig mot netstandard2.1, så NuGet avvisar ett .NET Framework‑projekt. Detta är inte ett lösbart återställningsfel: .NET Framework kan inte konsumera netstandard2.1. Använd paketet Doconut.NETFramework istället.

Komplieringsfel CS1705, eller vid körning när ett dokument öppnas:

text
Could not load file or assembly 'System.Text.Json, Version=9.0.0.0'

Ditt projekt har låst System.Text.Json eller System.Text.Encodings.Web till en version under 9.0.x‑beroendena som deklareras av Doconut.NETStandard. Ta bort nedgradering och låt NuGet återställa paketgrafen (System.Text.Json 9.0.0 och System.Text.Encodings.Web 9.0.0 i det granskade 26.8.0‑paketet).

En mur av kompileringsfel omedelbart efter att ha uppgraderat paketet — detta är förväntat. 26.8.0 har ett annat API‑ytlager än 26.7.0, inte en kompatibel uppdatering. De flesta felen är using‑raderna som har flyttats till rot‑namnrymden Doconut; gå igenom Migrera till .NET Standard 2.1 istället för att fixa dem en efter en.

TypeInitializationException på den första presentationsfilen:

text
Could not load ... System.Drawing.Common, Version=6.0.0.0

Presentationsmotorn kräver hårt System.Drawing.Common 6.0.0 (deklarerad av paketet). Ta inte bort eller åsidosätt detta beroende — varje öppning av PPT/PPTX/PPS/POT/ODP misslyckas utan det.

Utdata ser felaktig ut

Sidor har ett vattenstämpel — appen är i ett utvärderingsläge: ingen licensfil hittades, ett utgånget tillfälligt eller prenumerationsfönster, eller en ogiltig domän. Inspektera IDoconutLicenseService (License.IsLicenseFileFound, IsExpired, IsVersionValid, IsValidForDomain, License.RejectionMessage) — licenssidan visar en färdig IDoconutLicenseService‑referens.

Legacy‑dokument renderar förvrängd text — kodsidkodningar laddas inte som standard. Lägg till en gång vid uppstart:

csharp
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

Felaktiga eller ersatta typsnitt på Linux/Docker — containern saknar dokumentets typsnitt. Peka FontFolders (på WordConfig/PptConfig) mot en monterad typsnittskatalog.

Presentationer öppnas men renderas inte på Linux/macOS — den nuvarande PPT/PPTX/PPS/POT/ODP‑renderaren kräver native libgdiplus samt System.Drawing.EnableUnixSupport=true. Paketet levererar System.Drawing.Common 6.0.0 eftersom det är den sista versionen som respekterar denna switch.

Funktionen fungerade i utvärdering, är tyst i produktion

Det klassiska överraskningsmomentet vid driftsättning: en aktiv Tillfällig licens beviljar alla funktioner; din köpta licens beviljar bara det du har köpt. Sök‑ och annoteringspaket kan försvinna när deras funktioner saknas. Registrerade Converter‑ eller DICOM‑plugins med en otillräcklig icke‑tillfällig licens misslyckas under AddDoconut(). Jämför IsCapabilityGranted(...) med varje funktion du aktiverar innan distribution.

Sökning hittar ingenting (eller för lite)

  • För en direkt PDF var AllowSearch inte aktiverat vid öppning. Word, Excel och PowerPoint exponerar samma switch via deras inbäddade PdfConfig.
  • Innehållet är skannat/bara bild, så vanlig Sök har inget textlager att matcha mot. Använd en källa med text eller en PDF‑projektion som bevarar text.
  • HTML och MS Project (MPP) är inte sökbara med sina standardinställningar — sätt DefaultRender = false så de renderas via en PDF‑projektion med ett inbyggt textlager. Word, Excel, PowerPoint, TXT, Visio, e‑post, EPUB och MHT söker med sina katalogstandarder.
  • objViewer.CanSearch() är false efter initiering — det lösta formatet har ingen standard sökväg. Detta är separat från Sök‑licensen; verifiera båda.

Fortfarande fast?

Isolera problemet mot den minsta Quick Start‑appen; om det reproduceras där, kontakta supporten med dokumentet, din Program.cs och licensdiagnostikens utdata.

Var den här sidan hjälpsam?