Kurulum
Doconut'u .NET Framework 4.7.2 web uygulamanıza ekleyin
Doconut.NETFramework .NET Framework 4.7.2 üzerinde klasik bir ASP.NET uygulamasında Doconut görüntüleyicisini barındırır — IIS veya IIS Express, MVC 5 veya Web Forms. Kurulum üç bölümden oluşur: NuGet paketi, Web.config içinde iki kayıt ve Global.asax içinde bir çağrı. Bu sayfa üçünü de kapsar; Hızlı Başlangıç ardından bir belgeyi bir sayfaya yerleştirir.
Gereksinimler
- Web projesi .NET Framework 4.7.2 veya daha üstünü hedeflemelidir. 4.7 projesi bu paketi kullanamaz; önce hedefi değiştirin.
- Site, entegre pipeline içinde çalışmalıdır (IIS ve IIS Express uygulama havuzları için varsayılan).
Bu sayfa Doconut.NETFramework 26.9.0 ve sonrası için geçerlidir. 26.8.0 ve öncesi sürümler .NET Framework 4.7'yi farklı bir API ile hedeflemişti; bu hat artık kullanılmamaktadır. Mevcut bir uygulamayı bu sınırın ötesine güncellemek Geçiş bölümünde ele alınmıştır.
Paketi kur
Package Manager Console'dan:
Install-Package Doconut.NETFrameworkVeya, SDK tarzı bir projede:
dotnet add package Doconut.NETFrameworkRender motoru paket içinde gömülüdür: referans vermek, kopyalamak veya dağıtmak için ayrı bir motor derlemesi yoktur. İsteğe bağlı özellikler kendi paketleri olarak gelir — örneğin Doconut.NETFramework.Converter ve Doconut.NETFramework.Dicom — ve her biri ona bir lisans gerektirir (bkz. Eklenti Sistemi).
Web.config'u yapılandır
Doconut iki tür isteği hizmet eder ve IIS her ikisini de Web.config üzerinden yönlendirir:
DocImage.axd— görüntüleyicinin sayfası, küçük resim, arama ve açıklama uç noktası,Doconut.DocImageHandlertarafından hizmet verir./doconut-res/*— görüntüleyicinin kendi betikleri, stil sayfaları ve simgeleri, derlemede gömülüdür veDoconut.DoconutResourceModuletarafından hizmet verir.
Her ikisini ve bunların bağımlı olduğu ayarları ekleyin:
<configuration>
<system.web>
<!-- MVC 5 yalnızca: Razor, görünümleri çalışma zamanında derler ve netstandard ara yüzüne ihtiyaç duyar. -->
<compilation targetFramework="4.7.2">
<assemblies>
<add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" />
</assemblies>
</compilation>
<!-- maxRequestLength KİLOBAYT cinsindendir: 200 MB. -->
<httpRuntime targetFramework="4.7.2" maxRequestLength="204800" />
<!-- .cshtml ve .aspx dosyalarını UTF-8 olarak oku, sunucunun ANSI kod sayfası olarak değil. -->
<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- maxAllowedContentLength BAYT cinsindendir: aynı 200 MB. -->
<requestLimits maxAllowedContentLength="209715200" />
</requestFiltering>
</security>
<modules runAllManagedModulesForAllRequests="true">
<add name="DoconutResourceModule" type="Doconut.DoconutResourceModule, Doconut" />
</modules>
<handlers>
<add name="DocImage" verb="GET,HEAD,POST" path="DocImage.axd"
type="Doconut.DocImageHandler, Doconut" />
</handlers>
</system.webServer>
</configuration>Her satır, istisna fırlatılmayan bir hatayı önler:
verb="GET,HEAD,POST"—HEADtut. Görüntüleyici, hareketli resimleri algılamak için sayfa 1'e birHEADisteği gönderir. Verb olmadan, IIS handler çalışmadan önce404yanıtı verir: belgeler hâlâ görüntülenir, ancak animasyon algılaması hiç çalışmaz ve tarayıcı konsolu 404'lerle dolar.runAllManagedModulesForAllRequests="true"—/doconut-res/*.js,.cssve.pngstatik dosyalar gibi görünür ve IIS bunları kaynak modülü görmeden önce statik dosya handler'ına verir. Sonuç, betik veya simge içermeyen bir görüntüleyicidir.<globalization fileEncoding="utf-8">— bayt sırası işareti olmadan UTF-8 olarak kaydedilen sayfa dosyaları, aksi takdirde sunucunun ANSI kod sayfası ile okunur; bu yüzden her ASCII dışı karakter tarayıcıya çift kodlanmış olarak ulaşır (bir uzun tire—olarak gösterilir). Dosya diskte doğru, ve sayfa hâlâ<meta charset="utf-8">bildirir.netstandardderlemesi (MVC 5) — Razor, görünümleri ilk isteklerinde derler ve bu ara yüzü içermeyen kendi referans listesine sahiptir. Düz bir üye erişiminin ötesinde dinamik bir şey yapan bir görünümCS0012hatası verir ve boş bir500yanıtı üretir; sadece bu hatayı tetikleyen sayfalar başarısız olur. Derleyici hatası yalnızca Windows olay günlüğünde (kaynak ASP.NET) görünür. Web Forms uygulamaları bu satıra ihtiyaç duymaz.- Yükleme limitleri — ASP.NET, herhangi bir handler çalışmadan önce tüm istek gövdesini okur, bu yüzden bu limitlerin üzerindeki bir yükleme IIS tarafından kendi hata sayfasıyla reddedilir.
maxRequestLength(kilobayt) vemaxAllowedContentLength(bayt) değerlerini uyumlu tutun ve kullanıcılarınızın açtığı ya da yüklediği en büyük dosyanın üzerindeki bir değer seçin.
İki ayar daha önemlidir ve genellikle zaten doğrudur:
- Oturum durumu açık kalır. Varsayılan olarak bir sayfa yalnızca belgeyi açan ASP.NET oturumuna hizmet eder, bu yüzden site
<sessionState mode="Off" />ayarlamamalıdır. Bkz. Oturumlar ve Güvenlik. - Bağlantı yönlendirmeleri. NuGet'in
Web.configiçine yazdığı<runtime>bağlama yönlendirmelerini koruyun. SDK tarzı bir projede, bunları oluşturulanbin\<YourApp>.dll.configdosyasından kopyalayın; çünkü klasik ASP.NET yönlendirmeleri yalnızcaWeb.config'den okur.bin\içinde bulunmayan bir sürümü adlandıran bir yönlendirme, uygulamanın başlangıcında boş bir500hatasıyla tamamen durmasına neden olur.
Global.asax içinde Doconut'u Kaydet
System.Web içinde bir oluşturucu ve ara katman (middleware) boru hattı yoktur. Doconut, Application_Start içinde DoconutHost.Initialize tarafından bir işçi süreci başına bir kez oluşturulur ve Application_End içinde DoconutHost.Shutdown ile serbest bırakılır:
// Global.asax.cs
protected void Application_Start()
{
Doconut.DoconutHost.Initialize(options =>
{
options.LicensePath = HostingEnvironment.MapPath("~/wwwroot/Doconut.Viewer.lic");
});
}
protected void Application_End()
{
Doconut.DoconutHost.Shutdown();
}DoconutHost.Initialize, işleyici, kaynak modülü ve kendi kodunuzun kullandığı hizmetleri oluşturur. Kodunuz bu hizmetlere DoconutHost.Services aracılığıyla erişir (bkz. DoconutHost). Yalnızca ilk çağrı yapılandırma yapar; ikinci çağrı yok sayılır. Bir MVC uygulamasında, iki Doconut yolunu da yönlendirmeden dışarıda tutun — Quick Start tam Application_Start örneğini gösterir.
Tüm seçenekler
DoconutOptions, aşağıdaki ayarlanabilir özellikleri kabul eder. Hepsi isteğe bağlıdır.
| Özellik | Varsayılan | Açıklama |
|---|---|---|
UnsafeMode | false | false olduğunda, DocImage.axd yalnızca belgeyi açan ASP.NET oturumuna bir sayfa sunar. true olduğunda, token taşıyan herhangi bir istek hizmet alır. false bırakın. |
ShowDoconutInfo | false | true olduğunda, token içermeyen bir DocImage.axd isteği 404 yerine bir sürüm bannerı döner. Duman kontrolü olarak faydalıdır; üretimde kapalı tutun. |
ResourcesPath | "/doconut-res" | Kaynak modülünün gömülü betikleri, stilleri ve simgeleri hizmet verdiği yer. Bunu yalnızca görüntüleyicinin ResPath ve herhangi bir MVC IgnoreRoute ile birlikte değiştirin. |
LicensePath | "" | Lisans dosyasının tam yolu. Boş bırakılırsa bir sonraki kaynağa, ardından otomatik keşfe geçilir. |
LicenseContent | "" | Ham lisans içeriği — bir ortam değişkeni, gizli bir depolama veya bir veritabanından. |
LicenseStream | null | Lisans bir akış olarak, başlangıçta bir kez okunur. |
MiddlewarePath | "/doconut" | Bu paket içinde kullanılmaz. Sayfa uç noktası, Web.config içinde bildirilen DocImage.axd işleyicisidir, ne ayarlanırsa ayarlansın. Yine de doğrulanır: / ile başlamalı ve ResourcesPath'den farklı olmalıdır. |
ResetLicense | false | Bu paket içinde kullanılmaz. Lisans, DoconutHost.Initialize içinde bir kez okunur; bir lisans dosyası değiştirildikten sonra uygulama havuzunu yeniden başlatın. |
Birden fazla lisans kaynağı ayarlanmışsa, LicenseStream LicenseContent'i, LicenseContent LicensePath'i, LicensePath ise otomatik keşfi geçersiz kılar — bkz. License Setup.
Doconut.DoconutHost.Initialize(options =>
{
options.LicensePath = HostingEnvironment.MapPath("~/wwwroot/Doconut.Viewer.lic");
options.ResourcesPath = "/doconut-res"; // görüntüleyicinin JS/CSS/görsellerinin hizmet verdiği yer
options.UnsafeMode = false; // oturum güvenliğini açık tut
options.ShowDoconutInfo = false;
});
// Sayfa uç noktası burada bir seçenek değildir: Web.config içinde bildirilen DocImage.axd işleyicisidir.Sonraki adımlar
- Quick Start — bir belgeyi açın ve tarayıcıda, MVC 5 veya Web Forms içinde render edin.
- License Setup — Doconut'un lisans dosyanızı aradığı yer.
Bu sayfa yardımcı oldu mu?