Felsökning
Diagnostisera vanliga fel
Många System.Web-fel kastar inget undantag som du kan se: sidan svarar med en tom 500, en ikon ger 404, eller en begäran returnerar aldrig. Denna sida är organiserad efter vad du observerar. Citatade meddelanden är den bokstavliga texten som Doconut producerar.
Symptom på ett överskådligt sätt
| Vad du ser | Mest sannolikt orsak | Åtgärd |
|---|---|---|
Varje begäran svarar med en tom 500 | Ett undantag i Application_Start: ett plugin utan licens, ett ogiltigt alternativ, en ofullständig farmkonfiguration — eller en bindningsomdirigering som namnger en version som inte finns i bin\ | Windows‑händelseloggen, Application, källa ASP.NET. Se Startfel |
Vissa MVC‑sidor svarar med en tom 500 | Razor kompilerar vyer vid körning: netstandard‑fasaden saknas i <compilation>, eller vyn använder C# nyare än 5 (?., $"...", nameof) | Lägg till fasaden (Installation); flytta logik från vyn till kontrollern |
Sidor visar —, … eller liknande istället för bindestreck och accenter | Sidfiler utan byte‑order‑mark läses med serverns ANSI‑teckenkodning | <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" /> |
Webbläsarens konsol visar 404 för HEAD /DocImage.axd?...&page=1 | Handlaren är registrerad utan HEAD‑verb | verb="GET,HEAD,POST" på handlaren |
| Dokumentet renderas, men verktygsfältsikoner och laddningsindikatorn saknas | ResPath pekar på resursroten, eller börjar med / | ResPath: 'doconut-res/images' |
/doconut-res/...‑förfrågningar svarar 404 | Resursmodulen är inte registrerad, runAllManagedModulesForAllRequests är avstängd, eller MVC‑routing fångar sökvägen | <modules>‑posten, och routes.IgnoreRoute("doconut-res/{*pathInfo}") |
Visaren rapporterar The viewer handler could not be reached (no response). | BasePath börjar med / ('/myapp' blir //myapp/…, annan värd) | BasePath: '/' i webbplatsens rot; 'myapp' i en virtuell katalog |
Visaren rapporterar Please make sure your middleware is configured. | DocImage.axd svarade 404: handlaren finns inte i Web.config, MVC‑routing fångade den, eller BasePath pekar någon annanstans | <handlers>‑posten, routes.IgnoreRoute("{resource}.axd/{*pathInfo}"), och BasePath |
Varje sida visar You Are Not Authorized To View This Page. | Dokumentet öppnades i en begäran utan sessionsstatus, sessionsstatus är avstängd, eller sessionskakan når inte DocImage.axd | Se Ej behörig |
| En Web Forms‑konvertering returnerar aldrig | Sidan blockerar på ConvertAsync — ett deadlock | Async="true" + RegisterAsyncTask (Konverterings‑plugin) |
| Varje sida har ett utvärderingsvattenmärke | Ingen licens hittades — den finns inte i <site root>\wwwroot | Licensinställning |
En widget laddas, men dess första åtgärd svarar 404 | Widgeten är inte aktiverad, eller dess basePath är inte '/DocImage.axd' | options.Add…Widget(), och basePath: '/DocImage.axd' |
| Det första dokumentet efter att webbplatsen startas eller återställs tar en minut eller mer; senare är snabba | Dokumentmotorerna laddas vid första öppning, och realtid‑antivirus skannar dem när de laddas | Värm upp webbplatsen och håll poolen igång — se Det första dokumentet efter en start |
| En stor uppladdning visar en IIS‑felsida | Uppladdningen överskrider maxRequestLength (KB) eller maxAllowedContentLength (byte) | Höj båda över din största fil‑ eller widgetgräns |
Startfel
Ett undantag som kastas i Application_Start når inte webbläsaren: varje begäran svarar med en tom 500, och IIS‑loggen visar inget användbart. Undantaget finns i Windows‑händelseloggen (Event Viewer → Windows Logs → Application, källa ASP.NET). De vanliga:
Ett plugin utan licens:
The Converter plugin is registered via AddPlugin but no active license grants Converter.
Remove the AddPlugin<...>() call or install a license (or trial/demo) that includes Converter.Pluginets Doconut.Viewer.<Capability>.lic måste vara i wwwroot, bredvid Doconut.Viewer.lic. En saknad licens och en äldre TRIAL‑fil ger inga plugin‑funktioner.
Ogiltiga alternativ:
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.En assembly som inte kan laddas.
ASP.NET laddar varje assembly i bin\ när applikationen startar, så en bindningsomdirigering i Web.config som namnger en version som saknas i bin\ stoppar hela webbplatsen. Kopiera omdirigeringarna som NuGet genererade (för ett SDK‑stilprojekt, från bin\<YourApp>.dll.config) istället för att redigera dem manuellt, och kopiera dem igen efter paketuppdateringar.
Du har inte behörighet att visa den här sidan.
Sidan nekas eftersom den begärande ASP.NET‑sessionen aldrig fick dokumentet. Kontrollera i följd:
- Öppningen kördes med sessionsstatus. MVC‑kontroller och Web Forms‑sidor har den. En anpassad
IHttpHandlersom öppnar dokument måste implementeraSystem.Web.SessionState.IRequiresSessionState, annars har den ingen session att bevilja. - Sessionsstatus är på.
<sessionState mode="Off" />vägrar varje sida. - Cookien når hanteraren. Widgetens same‑origin‑förfrågningar bär
ASP.NET_SessionId; ett skript, ett server‑till‑server‑anrop eller en cross‑origin‑sida utan cookies gör det inte. - Webbfarm: öppningen binder webbläsaren (
DocOptions.BrowserId) och sidan vidarebefordrar biljetten (objViewer.View(token, access)); varje nod använder samma signeringsnyckel.
Nekandet är en bild som levereras med status 200, cirka 2 KB. En övervakare som bara kontrollerar statuskoder räknar den som en sida.
Dokumentsession ej funnen. Vänligen öppna dokumentet igen.
Tokenet gick ut (glidande fönster, DocOptions.TimeOut, standard 60 minuter), dokumentet stängdes, eller — på en enskild server — återställdes applikationspoolen. En återställning sker enligt schema, vid varje Web.config‑redigering och efter poolens inaktiva tidsgräns (20 minuter som standard i IIS). Öppna dokumentet igen för ett nytt token.
Det går inte att öppna ett dokument
LicenseException med en avvisningsorsak — licensfilen hittades men avslogs (ogiltig signatur, manipulation, svartlistning eller en byggnad utanför licensens versionsfönster). Öppning blockeras snarare än vattenmärkt.
LicenseException:
This document type requires the 'Dicom' plugin license.Filändelsen hanteras endast av ett plugin (här DICOM) vars funktionalitet inte är beviljad.
FormatNotSupportedException — ingen visare (inbyggd, plugin eller anpassad) stödjer filändelsen. DoconutOptions.RegisterViewer kan lägga till en för dina egna format.
InvalidDataException — innehållet är korrupt eller matchar inte filändelsen (en omdöpt fil). Validera uppladdningar innan öppning.
InvalidOperationException:
No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().DocumentConverter löstes utan att registrera Converter‑pluginet.
Utdata ser felaktig ut
Sidor bär ett vattenmärke — ingen licens hittades, eller den har gått ut eller täcker inte den här versionen. Under IIS måste licensen finnas i wwwroot under webbplatsens rot (AppContext.BaseDirectory\wwwroot), inte i bin\. Kontrollera IDoconutLicenseService (License.IsLicenseFileFound, IsExpired, IsVersionValid, License.RejectionMessage).
Äldre dokument renderar förvrängd text — registrera kodsidans teckenkodningar en gång, vid start:
// Global.asax.cs, Application_Start - innan DoconutHost.Initialize.
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);Felaktiga eller ersatta typsnitt — servern saknar dokumentets typsnitt. En Windows Server utan Office har mycket färre typsnitt än en utvecklingsmaskin. Installera typsnitten, eller peka FontFolders (på WordConfig och PptConfig) mot en mapp som innehåller dem.
En bildanmärkning visas i visaren men exporten har en "Image blocked"-ruta — bildens värd har en privat eller loopback‑adress, som servern vägrar att hämta. Se Anmärkningar.
Funktionen fungerade i utvärdering, är tyst i produktion
En aktiv Tillfällig licens beviljar alla funktioner; din köpta licens beviljar bara det du köpt. Utan en funktion sänds dess Sök‑ eller Anmärkning‑filer inte, och ett registrerat plugin stoppar webbplatsen vid start. Jämför IsCapabilityGranted(...) med varje funktion du använder innan du distribuerar.
Sök hittar ingenting (eller för lite)
- För en PDF var
AllowSearchinte aktiverat när dokumentet öppnades — det är som standardfalse. Word, Excel och PowerPoint exponerar samma växel. - Innehållet är skannat eller enbart bild, så det finns inget textlager att matcha.
- HTML och Microsoft Project (MPP) är inte sökbara i sina standardinställningar: ställ in
DefaultRender = falseså att de renderas via en PDF‑projektion med text. objViewer.CanSearch()ärfalseefter initiering: det lösta formatet har ingen sökväg. Detta är separat från Sök‑licensen; kontrollera båda.- Sidan läser returvärdet från
objViewer.Search(...)— räknaren kommer i dess tredje argument, en återuppringning.
Fortfarande fast?
Reproducera problemet med den minimala konfigurationen från Snabbstart. Om det reproduceras där, kontakta support med dokumentet, din Global.asax.cs, Doconut‑delarna av Web.config, och Windows‑händelseloggposten om det finns en.
Var den här sidan hjälpsam?