Sorun Giderme
Yaygın hataları teşhis edin
Birçok System.Web hatası, görebileceğiniz bir istisna üretmez: sayfa boş bir 500 ile yanıt verir, bir simge 404 döner veya bir istek hiç geri dönmez. Bu sayfa, gözlemlerinize göre düzenlenmiştir. Alıntılanan mesajlar, Doconut'un ürettiği tam metindir.
Bir bakışta Belirtiler
| Görüntülediğiniz | En olası neden | Çözüm |
|---|---|---|
Her istek boş bir 500 ile yanıt verir | Application_Start içinde bir istisna: lisansı olmayan bir eklenti, geçersiz bir seçenek, eksik bir farm yapılandırması — ya da bin\ içinde olmayan bir sürümü adlandıran bir binding yönlendirmesi | Windows olay günlüğü, Application, kaynak ASP.NET. Bkz. Başlangıç hataları |
Bazı MVC sayfaları boş bir 500 ile yanıt verir | Razor, görünümleri çalışma zamanında derler: netstandard yüzü <compilation> içinde eksik, ya da görünüm C# 5'ten daha yeni bir sürüm kullanıyor (?., $"...", nameof) | Yüzeyi ekleyin (Kurulum); mantığı görünüştan denetleyiciye taşıyın |
Sayfalar tire ve aksanlar yerine —, … veya benzeri gösterir | Byte-order mark içermeyen sayfa dosyaları, sunucunun ANSI kod sayfası ile okunur | <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" /> |
Tarayıcı konsolu 404 gösterir HEAD /DocImage.axd?...&page=1 için | İşleyici, HEAD fiili olmadan kaydedilmiş | verb="GET,HEAD,POST" işleyicide |
| Belge renderlanıyor, ancak araç çubuğu simgeleri ve yükleme çarkı eksik | ResPath kaynak köküne işaret ediyor, ya da / ile başlıyor | ResPath: 'doconut-res/images' |
/doconut-res/... istekleri 404 ile yanıt verir | Kaynak modülü kaydedilmemiş, runAllManagedModulesForAllRequests kapalı, ya da MVC yönlendirmesi yolu yakalar | <modules> girişi ve routes.IgnoreRoute("doconut-res/{*pathInfo}") |
Görüntüleyici The viewer handler could not be reached (no response). rapor eder | BasePath / ile başlar ('/myapp', //myapp/… olur, başka bir host) | BasePath: '/' site kökünde; 'myapp' sanal dizinde |
Görüntüleyici Please make sure your middleware is configured. rapor eder | DocImage.axd 404 yanıtladı: işleyici Web.config içinde değil, MVC yönlendirmesi yakaladı, ya da BasePath başka bir yere işaret ediyor | <handlers> girişi, routes.IgnoreRoute("{resource}.axd/{*pathInfo}") ve BasePath |
Her sayfa You Are Not Authorized To View This Page. gösterir | Belge, oturum durumu olmayan bir istekle açıldı, oturum durumu kapalı, ya da oturum çerezi DocImage.axd'a ulaşmıyor | Bkz. Yetkisiz |
| Bir Web Forms dönüşümü hiç dönmez | Sayfa ConvertAsync üzerinde bloklanır — bir deadlock | Async="true" + RegisterAsyncTask (Dönüştürücü Eklentisi) |
| Her sayfa bir değerlendirme filigranı taşır | Lisans bulunamadı — <site root>\wwwroot içinde değil | Lisans Kurulumu |
Bir widget yüklenir, ancak ilk eylemi 404 ile yanıt verir | Widget etkin değil, ya da basePath '/DocImage.axd' değil | options.Add…Widget(), ve basePath: '/DocImage.axd' |
| Site başlatıldıktan veya yeniden başlatıldıktan sonraki ilk belge bir dakika ya da daha uzun sürer; sonraki belgeler hızlıdır | Belge motorları ilk açılışta yüklenir ve gerçek zamanlı antivirüs onları yüklerken tarar | Siteyi ısıtın ve havuzu çalışır tutun — Bkz. Başlangıçtan sonraki ilk belge |
| Büyük bir yükleme IIS hata sayfası gösterir | Yükleme maxRequestLength (KB) veya maxAllowedContentLength (bayt) değerlerini aşar | Her ikisini de en büyük dosyanızın veya widget sınırınızın üzerine çıkarın |
Başlangıç hataları
Application_Start içinde atılan bir istisna tarayıcıya ulaşmaz: her istek boş bir 500 ile yanıt verir ve IIS günlüğü faydalı bir şey göstermez. İstisna Windows olay günlüğünde (Event Viewer → Windows Logs → Application, source ASP.NET) bulunur. Yaygın olanlar:
Lisansı olmayan bir eklenti:
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.Eklentinin Doconut.Viewer.<Capability>.lic, wwwroot içinde, Doconut.Viewer.lic yanına yerleştirilmelidir. Eksik bir lisans ve eski bir TRIAL dosyası, eklenti yetenekleri sağlamaz.
Geçersiz seçenekler:
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.Yüklenemeyen bir derleme. ASP.NET, uygulama başlatıldığında bin\ içindeki her derlemeyi yükler, bu yüzden bin\ içinde bulunmayan bir sürümü adlandıran Web.config içindeki bir binding yönlendirmesi tüm siteyi durdurur. Yönlendirmeleri elle düzenlemek yerine NuGet'in oluşturduğu yönlendirmeleri (SDK tarzı bir proje için, bin\<YourApp>.dll.config'dan) kopyalayın ve paket güncellemelerinden sonra tekrar kopyalayın.
Bu Sayfayı Görüntüleme Yetkiniz Yok.
Sayfa, istekte bulunan ASP.NET oturumuna belge hiç verilmediği için reddedildi. Sırasıyla kontrol edin:
- Açma, oturum durumu ile çalıştı. MVC denetleyicileri ve Web Forms sayfaları bunu içerir. Belgeleri açan özel bir
IHttpHandler,System.Web.SessionState.IRequiresSessionStateuygulamalıdır, aksi takdirde vermek için oturumu yoktur. - Oturum durumu açık.
<sessionState mode="Off" />her sayfayı reddeder. - Çerez işleyiciye ulaşır. Widget'ın aynı kaynak istekleri
ASP.NET_SessionIdtaşır; bir betik, sunucu‑sunucu çağrısı veya çerezsiz çapraz kaynak sayfa taşımaz. - Web çiftliği: açma, tarayıcıyı (
DocOptions.BrowserId) bağlar ve sayfa bileti (objViewer.View(token, access)) iletir; her düğüm aynı imzalama anahtarını kullanır.
Reddetme, durum 200 ile sunulan yaklaşık 2 KB'lık bir görüntüdür. Yalnızca durum kodlarını kontrol eden bir izleyici bunu bir sayfa olarak sayar.
Belge oturumu bulunamadı. Lütfen belgeyi yeniden açın.
Jeton süresi doldu (kaydırmalı pencere, DocOptions.TimeOut, varsayılan 60 dakika), belge kapatıldı veya — tek bir sunucuda — uygulama havuzu yeniden başlatıldı. Yeniden başlatma, zamanlamaya göre, her Web.config düzenlemesinde ve havuzun boşta kalma zaman aşımından (IIS'te varsayılan 20 dakika) sonra gerçekleşir. Yeni bir jeton için belgeyi tekrar açın.
Belge Açma Başarısız
LicenseException reddetme nedeni ile — lisans dosyası bulundu ancak reddedildi (geçersiz imza, manipülasyon, kara listeye alım veya lisansın sürüm penceresinin dışındaki bir yapı). Açma, filigran eklemek yerine engellenir.
LicenseException:
This document type requires the 'Dicom' plugin license.Uzantı yalnızca (burada DICOM) yetkisi verilmemiş bir eklenti tarafından işlenir.
FormatNotSupportedException — uzantıyı iddia eden bir görüntüleyici (yerleşik, eklenti veya özel) yok. DoconutOptions.RegisterViewer kendi formatlarınız için bir tane ekleyebilir.
InvalidDataException — içerik bozuk veya uzantısıyla eşleşmiyor (yeniden adlandırılmış dosya). Açmadan önce yüklemeleri doğrulayın.
InvalidOperationException:
No IDocumentConverter is registered. Add the converter plugin: options.AddPlugin<Doconut.Plugins.Converter.ConverterPlugin>().DocumentConverter, Converter eklentisi kaydedilmeden çözüldü.
Çıktı Yanlış Görünüyor
Sayfalar filigran taşır — lisans bulunamadı, süresi doldu veya bu sürümü kapsamaz. IIS altında, lisans site kökünün (AppContext.BaseDirectory\wwwroot) altında wwwroot içinde olmalı, bin\ içinde değil. IDoconutLicenseService kontrol edin (License.IsLicenseFileFound, IsExpired, IsVersionValid, License.RejectionMessage).
Eski belgeler bozuk metin gösterir — kod sayfası kodlamalarını bir kez, başlangıçta kaydedin:
// Global.asax.cs, Application_Start - DoconutHost.Initialize öncesinde.
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);Yanlış veya değiştirilmiş yazı tipleri — sunucuda belgenin yazı tipleri yok. Office olmadan bir Windows Server, bir geliştirme makinesine göre çok daha az yazı tipine sahiptir. Yazı tiplerini kurun veya FontFolders (WordConfig ve PptConfig üzerinde) bunları içeren bir klasöre yönlendirin.
Bir görüntü açıklaması görüntüleyicide görünür ancak dışa aktarımda "Görüntü engellendi" kutusu vardır — görüntünün sunucusu özel veya döngüsel bir adrese sahiptir ve sunucu bunu almaya izin vermez. Bakınız Açıklamalar.
Özellik Değerlendirmede Çalıştı, Üretimde Sessiz
Bir aktif Geçici lisans tüm yetenekleri verir; satın aldığınız lisans sadece satın aldıklarınızı kapsar. Bir yetenek olmadan, arama veya açıklama dosyaları üretilmez ve kaydedilmiş bir eklenti, siteyi başlangıçta durdurur. Dağıtmadan önce IsCapabilityGranted(...)'ı kullandığınız her özellik ile karşılaştırın.
Arama Hiçbir Şey Bulamıyor (veya Çok Az)
- PDF için, belge açıldığında
AllowSearchetkinleştirilmemişti — varsayılan olarakfalsekullanılır. Word, Excel ve PowerPoint aynı anahtarı sunar. - İçerik taranmış veya yalnızca görüntü olduğu için eşleşecek bir metin katmanı yoktur.
- HTML ve Microsoft Project (MPP) varsayılan ayarlarında aranabilir değildir:
DefaultRender = false'ı ayarlayarak metinli bir PDF projeksiyonu üzerinden render edilmelerini sağlayın. - Başlatmadan sonra
objViewer.CanSearch(),falsedurumundadır: çözülen formatın arama yolu yoktur. Bu, Arama lisansından ayrı bir durumdur; ikisini de kontrol edin. - Sayfa,
objViewer.Search(...)'ın dönüş değerini okur — sayı üçüncü argümanında, bir geri çağrıda gelir.
Hâlâ takıldı mı?
Problemi, Hızlı Başlangıç içindeki en düşük kurulumla yeniden oluşturun. Eğer orada yeniden oluşturulursa, belgeyle, kendi Global.asax.cs, Web.config'nin Doconut bölümleri ve varsa Windows olay günlüğü girdisiyle destek birimine başvurun.
Bu sayfa yardımcı oldu mu?