Řešení problémů

Diagnostika běžných chyb

Mnoho selhání System.Web nevyvolá žádnou výjimku, kterou byste viděli: stránka odpovídá prázdným 500, ikona vrací 404, nebo požadavek nikdy nevrátí. Tato stránka je uspořádána podle toho, co pozorujete. Citované zprávy jsou doslovný text, který Doconut produkuje.

Symptomy na první pohled

Co vidíteNejpravděpodobnější příčinaOprava
Každý požadavek odpovídá prázdným 500Výjimka v Application_Start: plugin bez licence, neplatná volba, neúplná konfigurace farmy — nebo přesměrování vazby pojmenovávající verzi, která není v bin\Protokol událostí Windows, Aplikace, zdroj ASP.NET. Viz Selhání při spuštění
Některé MVC stránky odpovídají prázdným 500Razor kompiluje pohledy za běhu: fasáda netstandard chybí v <compilation>, nebo pohled používá C# novější než 5 (?., $"...", nameof)Přidejte fasádu (Instalace); přesuňte logiku z pohledu do kontroleru
Stránky zobrazují —, … nebo podobné místo pomlček a diakritikySoubory stránek bez značky pořadí bajtů jsou čteny s ANSI kódovou stránkou serveru<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" />
Konzole prohlížeče zobrazuje 404 pro HEAD /DocImage.axd?...&page=1Handler je registrován bez slovesa HEADverb="GET,HEAD,POST" na handleru
Dokument se vykresluje, ale ikony nástrojové lišty a načítací spinner chybíResPath ukazuje na kořen zdrojů, nebo začíná s /ResPath: 'doconut-res/images'
/doconut-res/... požadavky odpovídají 404Modul zdrojů není registrován, runAllManagedModulesForAllRequests je vypnutý, nebo MVC směrování zachytí cestuZáznam <modules> a routes.IgnoreRoute("doconut-res/{*pathInfo}")
Prohlížeč hlásí The viewer handler could not be reached (no response).BasePath začíná s / ('/myapp' se stává //myapp/…, jiný hostitel)BasePath: '/' v kořeni webu; 'myapp' ve virtuálním adresáři
Prohlížeč hlásí Please make sure your middleware is configured.DocImage.axd odpověděl 404: handler není v Web.config, MVC směrování ho zachytil, nebo BasePath ukazuje jinamZáznam <handlers>, routes.IgnoreRoute("{resource}.axd/{*pathInfo}") a BasePath
Každá stránka zobrazuje You Are Not Authorized To View This Page.Dokument byl otevřen v požadavku bez stavové relace, stavová relace je vypnutá, nebo cookie relace nedosáhne DocImage.axdViz Neautorizováno
Web Forms konverze se nikdy nevrátíStránka se blokuje na ConvertAsync — deadlockAsync="true" + RegisterAsyncTask (Plugin převodníku)
Každá stránka nese evaluační vodoznakLicence nebyla nalezena — není v <site root>\wwwrootNastavení licence
Widget se načte, ale jeho první akce odpovídá 404Widget není povolen, nebo jeho basePath není '/DocImage.axd'options.Add…Widget(), a basePath: '/DocImage.axd'
První dokument po spuštění nebo recyklaci webu trvá minutu nebo více; pozdější jsou rychléEnginy dokumentů se načítají při prvním otevření a antivirová kontrola v reálném čase je skenuje během načítáníRozhřejte web a udržujte pool běžící — viz První dokument po spuštění
Velké nahrání zobrazí chybovou stránku IISNahrání překračuje maxRequestLength (KB) nebo maxAllowedContentLength (bajtů)Zvyšte oba nad velikost vašeho největšího souboru nebo limit widgetu

Selhání při spuštění

Výjimka vyhozená v Application_Start nedosáhne prohlížeče: každý požadavek odpovídá prázdným 500 a protokol IIS neukazuje nic užitečného. Výjimka je v Windows event log (Prohlížeč událostí → Windows Logs → Application, zdroj ASP.NET). Běžné jsou:

Plugin bez licence:

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.

Soubor Doconut.Viewer.<Capability>.lic pluginu musí být v wwwroot, vedle Doconut.Viewer.lic. Chybějící licence a starý soubor TRIAL neposkytují žádné schopnosti pluginu.

Neplatné možnosti:

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.

Assemblie, která se nenačte. ASP.NET načítá každou assemblý v bin\ při startu aplikace, takže přesměrování vazby v Web.config, které pojmenovává verzi chybějící v bin\, zastaví celý web. Zkopírujte přesměrování vygenerovaná NuGet (pro projekt typu SDK, z bin\<YourApp>.dll.config) místo jejich ruční úpravy a zkopírujte je znovu po aktualizacích balíčků.

Nemáte oprávnění zobrazit tuto stránku.

Stránka je odmítnuta, protože požadovaná ASP.NET relace nikdy nedostala dokument. Zkontrolujte v tomto pořadí:

  1. Otevření proběhlo se stavem relace. MVC kontrolery a stránky Web Forms jej mají. Vlastní IHttpHandler, který otevírá dokumenty, musí implementovat System.Web.SessionState.IRequiresSessionState, jinak nemá relaci k přidělení.
  2. Stav relace je zapnutý. <sessionState mode="Off" /> odmítá každou stránku.
  3. Cookie dosáhne obslužného programu. Požadavky widgetu ze stejného původu nesou ASP.NET_SessionId; skript, volání server‑to‑server nebo stránka z jiného původu bez cookies to neudělá.
  4. Webová farma: otevření sváže prohlížeč (DocOptions.BrowserId) a stránka předá tiket (objViewer.View(token, access)); každý uzel používá stejný podpisový klíč.

Odmítnutí je obrázek podávaný se stavem 200, asi 2 KB. Monitor, který kontroluje jen stavové kódy, ho počítá jako stránku.

Relace dokumentu nenalezena. Prosím, znovu otevřete dokument.

Token vypršel (posuvné okno, DocOptions.TimeOut, výchozí 60 minut), dokument byl uzavřen, nebo — na jediném serveru — byl recyklován aplikační pool. Recyklace probíhá podle plánu, při každé úpravě Web.config a po uplynutí časového limitu nečinnosti poolu (výchozí 20 minut v IIS). Znovu otevřete dokument pro získání nového tokenu.

Otevření dokumentu selhává

LicenseException s důvodem odmítnutí — licenční soubor byl nalezen, ale byl odmítnut (neplatný podpis, manipulace, zařazení na černou listinu nebo sestavení mimo verzní okno licence). Otevření je blokováno místo vodoznaku.

LicenseException:

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

Rozšíření je zpracováváno jen pluginem (zde DICOM), jehož schopnost není přidělena.

FormatNotSupportedException — žádný prohlížeč (vestavěný, plugin nebo vlastní) nevyžaduje toto rozšíření. DoconutOptions.RegisterViewer může přidat jeden pro vaše vlastní formáty.

InvalidDataException — obsah je poškozený nebo neodpovídá svému rozšíření (přejmenovaný soubor). Ověřte nahrané soubory před otevřením.

InvalidOperationException:

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

DocumentConverter byl vyřešen bez registrace pluginu Converter.

Výstup vypadá špatně

Stránky nesou vodoznak — nebyla nalezena žádná licence, nebo vypršela, nebo nepokrývá tuto verzi. V IIS musí být licence v wwwroot pod kořenem webu (AppContext.BaseDirectory\wwwroot), ne v bin\. Zkontrolujte IDoconutLicenseService (License.IsLicenseFileFound, IsExpired, IsVersionValid, License.RejectionMessage).

Starší dokumenty vykreslují poškozený text — zaregistrujte kódové stránky jednou při spuštění:

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

Špatná nebo nahrazená písma — server postrádá písma dokumentu. Windows Server bez Office má mnohem méně písem než vývojový počítač. Nainstalujte písma, nebo nasměrujte FontFolders (na WordConfig a PptConfig) na složku, která je obsahuje.

Obrázková anotace se zobrazuje v prohlížeči, ale export má pole „Obrázek blokován“ — hostitel obrázku má soukromou nebo smyčkovou adresu, kterou server odmítá načíst. Viz Anotace.

Funkce fungovala v hodnocení, v produkci je tichá

Aktivní dočasná licence poskytuje všechny funkce; vaše zakoupená licence poskytuje jen to, co jste zakoupili. Bez konkrétní funkce nejsou generovány její soubory pro vyhledávání nebo anotace a registrovaný plugin zastaví web při spuštění. Porovnejte IsCapabilityGranted(...) se všemi funkcemi, které používáte, před nasazením.

Vyhledávání nenajde nic (nebo málo)

  • Pro PDF nebylo při otevření dokumentu povoleno AllowSearch — výchozí je false. Word, Excel a PowerPoint mají stejný přepínač.
  • Obsah je skenovaný nebo jen obrázek, takže neexistuje textová vrstva k porovnání.
  • HTML a Microsoft Project (MPP) nejsou ve výchozím nastavení prohledávatelné: nastavte DefaultRender = false, aby se vykreslovaly přes PDF projekci s textem.
  • objViewer.CanSearch() je po inicializaci false: rozpoznaný formát nemá vyhledávací cestu. To je oddělené od licence pro vyhledávání; zkontrolujte obojí.
  • Stránka čte návratovou hodnotu objViewer.Search(...) — počet přichází ve třetím argumentu, jako zpětné volání.

Stále uvízli?

Zreprodukujte problém s minimálním nastavením z Rychlý start. Pokud se tam reprodukuje, kontaktujte podporu s dokumentem, vaším Global.asax.cs, částmi Doconut z Web.config a záznamem události Windows, pokud existuje.

Byla tato stránka užitečná?