Ř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íte | Nejpravděpodobnější příčina | Oprava |
|---|---|---|
Každý požadavek odpovídá prázdným 500 | Vý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 500 | Razor 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 diakritiky | Soubory 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=1 | Handler je registrován bez slovesa HEAD | verb="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í 404 | Modul zdrojů není registrován, runAllManagedModulesForAllRequests je vypnutý, nebo MVC směrování zachytí cestu | Zá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 jinam | Zá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.axd | Viz Neautorizováno |
| Web Forms konverze se nikdy nevrátí | Stránka se blokuje na ConvertAsync — deadlock | Async="true" + RegisterAsyncTask (Plugin převodníku) |
| Každá stránka nese evaluační vodoznak | Licence nebyla nalezena — není v <site root>\wwwroot | Nastavení licence |
Widget se načte, ale jeho první akce odpovídá 404 | Widget 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 IIS | Nahrá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:
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:
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í:
- Otevření proběhlo se stavem relace. MVC kontrolery a stránky Web Forms jej mají. Vlastní
IHttpHandler, který otevírá dokumenty, musí implementovatSystem.Web.SessionState.IRequiresSessionState, jinak nemá relaci k přidělení. - Stav relace je zapnutý.
<sessionState mode="Off" />odmítá každou stránku. - 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á. - 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:
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:
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í:
// 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í jefalse. 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 inicializacifalse: 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á?