Fehlerbehebung

Diagnose gängiger Fehler

Viele System.Web-Fehler werfen keine sichtbare Ausnahme: Die Seite gibt ein leeres 500 zurück, ein Symbol liefert einen 404-Fehler, oder eine Anfrage kehrt nie zurück. Diese Seite ist nach dem, was Sie beobachten, strukturiert. Zitatmeldungen sind der wörtliche Text, den Doconut erzeugt.

Symptome auf einen Blick

Was Sie sehenWahrscheinlichste UrsacheLösung
Jede Anfrage gibt ein leeres 500 zurückEine Ausnahme in Application_Start: ein Plugin ohne Lizenz, eine ungültige Option, eine unvollständige Farm-Konfiguration — oder eine Bindungsumleitung, die eine Version nennt, die nicht in bin\ vorhanden istWindows-Ereignisprotokoll, Anwendung, Quelle ASP.NET. Siehe Startfehler
Einige MVC-Seiten geben ein leeres 500 zurückRazor kompiliert Ansichten zur Laufzeit: Die netstandard-Fassade fehlt in <compilation>, oder die Ansicht verwendet C# neuer als 5 (?., $"...", nameof)Fügen Sie die Fassade hinzu (Installation); verschieben Sie die Logik von der Ansicht zum Controller
Seiten zeigen —, … oder Ähnliches anstelle von Bindestrichen und AkzentenSeitendateien ohne Byte-Order-Mark werden mit der ANSI-Codepage des Servers gelesen<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" />
Die Browser-Konsole zeigt 404 für HEAD /DocImage.axd?...&page=1Der Handler ist ohne das HEAD-Verb registriertverb="GET,HEAD,POST" am Handler
Das Dokument wird gerendert, aber Symbolleisten-Icons und der Ladekreisel fehlenResPath zeigt auf die Ressourcenwurzel, oder beginnt mit /ResPath: 'doconut-res/images'
/doconut-res/...-Anfragen geben 404 zurückDas Ressourcenmodul ist nicht registriert, runAllManagedModulesForAllRequests ist deaktiviert, oder das MVC-Routing fängt den Pfad abDer <modules>-Eintrag und routes.IgnoreRoute("doconut-res/{*pathInfo}")
Der Viewer meldet The viewer handler could not be reached (no response).BasePath beginnt mit / ('/myapp' wird zu //myapp/…, ein anderer Host)BasePath: '/' im Seitenstamm; 'myapp' in einem virtuellen Verzeichnis
Der Viewer meldet Please make sure your middleware is configured.DocImage.axd antwortete mit 404: Der Handler ist nicht in Web.config, das MVC-Routing hat ihn abgefangen, oder BasePath zeigt woanders hinDer <handlers>-Eintrag, routes.IgnoreRoute("{resource}.axd/{*pathInfo}") und BasePath
Jede Seite zeigt You Are Not Authorized To View This Page.Das Dokument wurde in einer Anfrage ohne Sitzungszustand geöffnet, Sitzungszustand ist deaktiviert, oder das Sitzungs‑Cookie erreicht DocImage.axd nichtSiehe Nicht autorisiert
Eine Web‑Forms-Konvertierung kehrt nie zurückDie Seite blockiert bei ConvertAsync — ein DeadlockAsync="true" + RegisterAsyncTask (Konverter‑Plugin)
Jede Seite trägt ein Evaluations‑WasserzeichenKeine Lizenz gefunden — sie befindet sich nicht in <site root>\wwwrootLizenz‑Einrichtung
Ein Widget lädt, aber seine erste Aktion gibt 404 zurückDas Widget ist nicht aktiviert, oder sein basePath ist nicht '/DocImage.axd'options.Add…Widget() und basePath: '/DocImage.axd'
Das erste Dokument nach dem Start oder dem Recycle der Seite benötigt eine Minute oder länger; spätere sind schnellDie Dokumenten‑Engines werden beim ersten Öffnen geladen, und Echtzeit‑Antivirus scannt sie beim LadenWärmen Sie die Seite auf und halten Sie den Pool am Laufen — siehe Das erste Dokument nach einem Start
Ein großer Upload zeigt eine IIS-FehlerseiteDer Upload überschreitet maxRequestLength (KB) oder maxAllowedContentLength (Bytes)Erhöhen Sie beide über Ihre größte Datei‑ oder Widget‑Grenze

Startfehler

Eine in Application_Start ausgelöste Ausnahme erreicht den Browser nicht: Jede Anfrage gibt ein leeres 500 zurück, und das IIS-Log zeigt nichts Nützliches. Die Ausnahme befindet sich im Windows-Ereignisprotokoll (Ereignisanzeige → Windows-Protokolle → Anwendung, Quelle ASP.NET). Die üblichen:

Ein Plugin ohne Lizenz:

text
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.

Der Doconut.Viewer.<Capability>.lic des Plugins muss in wwwroot sein, neben Doconut.Viewer.lic. Eine fehlende Lizenz und eine veraltete TRIAL‑Datei gewähren keine Plugin‑Funktionen.

Ungültige Optionen:

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.

Eine Assembly, die nicht geladen werden kann. ASP.NET lädt jede Assembly in bin\, wenn die Anwendung startet, sodass eine Bindungsumleitung in Web.config, die eine Version nennt, die in bin\ fehlt, die gesamte Seite stoppt. Kopieren Sie die von NuGet erzeugten Umleitungen (für ein SDK‑Projekt, aus bin\<YourApp>.dll.config) anstatt sie von Hand zu bearbeiten, und kopieren Sie sie nach Paket‑Updates erneut.

Sie sind nicht berechtigt, diese Seite anzuzeigen.

Die Seite wird abgelehnt, weil die anfordernde ASP.NET‑Sitzung das Dokument nie erhalten hat. Prüfen Sie in folgender Reihenfolge:

  1. Der Öffnungsvorgang lief mit Sitzungszustand. MVC‑Controller und Web‑Forms‑Seiten besitzen ihn. Ein benutzerdefiniertes IHttpHandler, das Dokumente öffnet, muss System.Web.SessionState.IRequiresSessionState implementieren, sonst hat es keine Sitzung zum Gewähren.
  2. Sitzungszustand ist aktiviert. <sessionState mode="Off" /> verweigert jede Seite.
  3. Das Cookie erreicht den Handler. Die Same‑Origin‑Anfragen des Widgets tragen ASP.NET_SessionId; ein Skript, ein Server‑zu‑Server‑Aufruf oder eine Cross‑Origin‑Seite ohne Cookies tut dies nicht.
  4. Web‑Farm: Der Öffnungsvorgang bindet den Browser (DocOptions.BrowserId) und die Seite übergibt das Ticket (objViewer.View(token, access)); jeder Knoten verwendet denselben Signaturschlüssel.

Die Ablehnung ist ein Bild, das mit dem Status 200 ausgeliefert wird, etwa 2 KB. Ein Monitor, der nur Statuscodes prüft, zählt es als Seite.

Dokumentensitzung nicht gefunden. Bitte Dokument erneut öffnen.

Das Token ist abgelaufen (gleitendes Fenster, DocOptions.TimeOut, Standard 60 Minuten), das Dokument wurde geschlossen, oder – bei einem einzelnen Server – der Anwendungspool wurde neu gestartet. Ein Neustart erfolgt nach Zeitplan, bei jeder Web.config‑Bearbeitung und nach dem Leerlauf‑Timeout des Pools (standardmäßig 20 Minuten in IIS). Öffnen Sie das Dokument erneut, um ein neues Token zu erhalten.

Öffnen eines Dokuments schlägt fehl

LicenseException mit einem Ablehnungsgrund – die Lizenzdatei wurde gefunden, aber abgelehnt (ungültige Signatur, Manipulation, Blacklisting oder ein Build außerhalb des Versionsfensters der Lizenz). Das Öffnen wird blockiert statt mit einem Wasserzeichen versehen.

LicenseException:

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

Die Erweiterung wird nur von einem Plugin (hier DICOM) verarbeitet, dessen Fähigkeit nicht gewährt ist.

FormatNotSupportedException – kein Viewer (eingebaut, Plugin oder benutzerdefiniert) unterstützt die Erweiterung. DoconutOptions.RegisterViewer kann einen für Ihre eigenen Formate hinzufügen.

InvalidDataException – der Inhalt ist beschädigt oder stimmt nicht mit der Erweiterung überein (eine umbenannte Datei). Validieren Sie Uploads, bevor Sie sie öffnen.

InvalidOperationException:

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

DocumentConverter wurde aufgelöst, ohne das Converter‑Plugin zu registrieren.

Ausgabe sieht falsch aus

Seiten tragen ein Wasserzeichen – keine Lizenz gefunden, sie ist abgelaufen oder deckt diese Version nicht ab. Unter IIS muss die Lizenz in wwwroot unter dem Site‑Root (AppContext.BaseDirectory\wwwroot) liegen, nicht in bin\. Prüfen Sie IDoconutLicenseService (License.IsLicenseFileFound, IsExpired, IsVersionValid, License.RejectionMessage).

Legacy‑Dokumente rendern unlesbaren Text – registrieren Sie die Code‑Page‑Kodierungen einmalig beim Start:

csharp
// Global.asax.cs, Application_Start - vor DoconutHost.Initialize.
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

Falsche oder ersetzte Schriftarten – dem Server fehlen die Schriftarten des Dokuments. Ein Windows‑Server ohne Office hat deutlich weniger Schriftarten als ein Entwicklungsrechner. Installieren Sie die Schriftarten oder verweisen Sie FontFolders (auf WordConfig und PptConfig) auf einen Ordner, der sie enthält.

Eine Bildannotation wird im Viewer angezeigt, aber beim Export erscheint ein „Image blocked“-Hinweis – der Host des Bildes hat eine private oder Loopback‑Adresse, die der Server nicht abrufen darf. Siehe Annotations.

Funktion funktionierte in der Evaluation, ist in der Produktion still

Eine aktive temporäre Lizenz gewährt jede Fähigkeit; Ihre gekaufte Lizenz gewährt nur das, was Sie erworben haben. Ohne eine Fähigkeit werden deren Such‑ oder Annotationsdateien nicht erzeugt, und ein registriertes Plugin stoppt die Site beim Start. Vergleichen Sie IsCapabilityGranted(...) mit jeder Funktion, die Sie vor dem Deployment nutzen.

Suche findet nichts (oder zu wenig)

  • Für ein PDF war AllowSearch nicht aktiviert, als das Dokument geöffnet wurde – standardmäßig ist false eingestellt. Word, Excel und PowerPoint bieten denselben Schalter.
  • Der Inhalt ist gescannt oder nur Bild, sodass keine Textebene zum Durchsuchen vorhanden ist.
  • HTML und Microsoft Project (MPP) sind standardmäßig nicht durchsuchbar: setzen Sie DefaultRender = false, damit sie über eine PDF‑Projektion mit Text gerendert werden.
  • objViewer.CanSearch() ist nach der Initialisierung false: das aufgelöste Format hat keinen Suchpfad. Das ist getrennt von der Such‑Lizenz; prüfen Sie beide.
  • Die Seite liest den Rückgabewert von objViewer.Search(...) – die Anzahl kommt im dritten Argument, einem Callback, an.

Noch feststeckend?

Reproduzieren Sie das Problem mit dem Minimalsetup aus Schnellstart. Wenn es dort reproduziert wird, kontaktieren Sie den Support mit dem Dokument, Ihrem Global.asax.cs, den Doconut-Teilen von Web.config und dem Windows-Ereignisprotokolleintrag, falls vorhanden.

War diese Seite hilfreich?