DoconutOptions
Konfigurasikan layanan Doconut
DoconutOptions (namespace Doconut) adalah objek konfigurasi tunggal untuk seluruh SDK. Anda mengkonfigurasinya sekali, dalam callback yang Anda berikan ke DoconutHost.Initialize di Application_Start.
Doconut.DoconutHost.Initialize(options =>
{
options.LicensePath = HostingEnvironment.MapPath("~/wwwroot/Doconut.Viewer.lic");
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Properti
| Tipe | Properti | Default | Deskripsi |
|---|---|---|---|
bool | UnsafeMode | false | Ketika false, DocImage.axd menyajikan halaman hanya untuk sesi ASP.NET yang membuka dokumen (atau, dalam farm, ke browser dengan tiket yang ditandatangani). Ketika true, setiap permintaan yang membawa token akan dilayani. Biarkan false — lihat Sesi & Keamanan. |
bool | ShowDoconutInfo | false | Ketika true, permintaan DocImage.axd tanpa token menjawab Doconut <version> is running on <host> alih-alih 404. Berguna sebagai pemeriksaan cepat; biarkan false dalam produksi. |
string | ResourcesPath | "/doconut-res" | Awalan URL tempat modul sumber daya menyajikan skrip, gaya, dan gambar yang tersemat. |
string | LicensePath | "" | Jalur lengkap ke file lisensi. Kosong → sumber lisensi berikutnya, kemudian penemuan otomatis; tidak ada yang ditemukan → evaluasi berwatermark tanpa kemampuan. |
string | LicenseContent | "" | Konten lisensi mentah (database, variabel lingkungan, penyimpanan rahasia). Memiliki prioritas lebih tinggi daripada LicensePath. |
Stream? | LicenseStream | null | Lisensi sebagai aliran, dibaca sekali saat startup. Memiliki prioritas lebih tinggi daripada kedua sumber lainnya. |
string | MiddlewarePath | "/doconut" | Tidak digunakan oleh System.Web. Titik akhir halaman selalu handler DocImage.axd yang dideklarasikan di Web.config. Nilai ini tetap divalidasi saat startup (lihat di bawah). |
bool | ResetLicense | false | Tidak digunakan. Lisensi dibaca sekali, di DoconutHost.Initialize; daur ulang application pool setelah mengganti lisensi. |
DoconutPluginRegistry | PluginRegistry | — | Registri hanya-baca dari kontribusi plugin, diisi oleh AddPlugin<T>(). |
Prioritas lisensi: LicenseStream → LicenseContent → LicensePath → penemuan otomatis (lihat Pengaturan Lisensi).
Metode
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Mendaftarkan sebuah plugin (Converter, DICOM). Fluent — mengembalikan instance opsi. Annotation dan Search adalah fitur berlisensi bawaan dan tidak menggunakan ini.
Jika tidak ada lisensi aktif yang memberikan kemampuan plugin, DoconutHost.Initialize melempar InvalidOperationException dari Application_Start, dan situs menjawab setiap permintaan dengan 500 kosong sampai diperbaiki; pesan berada di log peristiwa Windows (lihat Sistem Plugin).
Add…Widget()
DoconutOptions AddConverterWidget(Action<ConverterWidgetOptions>? configure = null)Widget drop-in dinonaktifkan secara default. Setiap pemanggilan Add…Widget() mengaktifkan endpoint widget tersebut pada DocImage.axd, dan memerlukan plugin yang cocok terdaftar. Modul sumber daya menyajikan skrip widget terlepas dari Anda mengaktifkannya atau tidak, sehingga widget yang memuat dan menggambar tetapi menjawab 404 pada aksi pertama kehilangan pemanggilan ini. Widget Converter didokumentasikan di Plugin Converter.
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — leading dot optional
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)Mendaftarkan penampil khusus untuk ekstensi file. Penampil khusus memiliki prioritas lebih tinggi daripada penampil bawaan dan plugin serta tidak terikat lisensi. Ketika defaultConfig dihilangkan dan dokumen dibuka tanpa konfigurasi eksplisit, ImageConfig akan digunakan.
Melempar ArgumentException (Extension must be a non-empty file extension.) untuk ekstensi kosong dan ArgumentNullException untuk factory null.
Validasi Startup
DoconutHost.Initialize memvalidasi opsi sebelum membangun apa pun:
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.MiddlewarePath diperiksa meskipun System.Web tidak pernah menggunakannya, jadi biarkan pada nilai defaultnya. Seperti setiap pengecualian yang dilempar dari Application_Start, kegagalan validasi muncul sebagai 500 kosong pada setiap permintaan, dengan pesan di log peristiwa Windows.
Konfigurasi Umum
// Production: explicit license, everything else at its secure default.
public static void ProductionLicense() =>
Doconut.DoconutHost.Initialize(options =>
{
options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
});
// Custom resource path (e.g. to avoid a route conflict). Keep the viewer's ResPath and any MVC
// IgnoreRoute in step with it: "/docs-assets" means ResPath: 'docs-assets/images'.
public static void CustomResourcePath() =>
Doconut.DoconutHost.Initialize(options =>
{
options.ResourcesPath = "/docs-assets";
});Saat Anda mengubah ResourcesPath, ubah tiga hal secara bersamaan: opsi, ResPath widget ('docs-assets/images' untuk "/docs-assets"), dan, di MVC, IgnoreRoute untuk jalur sumber daya (routes.IgnoreRoute("docs-assets/{*pathInfo}")). Endpoint DocImage.axd tidak berpindah: jalurnya ditetapkan oleh atribut path handler di Web.config.
Apakah halaman ini membantu?