DoconutOptions
Налаштування сервісів Doconut
DoconutOptions (namespace Doconut) — це єдиний об’єкт конфігурації для всього SDK. Ви налаштовуєте його один раз, у зворотному виклику, який передаєте до DoconutHost.Initialize у 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>();
});Властивості
| Тип | Властивість | За замовчуванням | Опис |
|---|---|---|---|
bool | UnsafeMode | false | Коли false, DocImage.axd подає сторінку лише до ASP.NET сесії, яка відкрила документ (або, у фермі, до браузера з підписаним токеном). Коли true, будь‑який запит, що містить токен, обслуговується. Залиште його false — див. Sessions & Security. |
bool | ShowDoconutInfo | false | Коли true, запит DocImage.axd без токену відповідає Doconut <version> is running on <host> замість 404. Корисно як швидка перевірка; залиште false у продакшн. |
string | ResourcesPath | "/doconut-res" | URL‑префікс, під яким модуль ресурсів подає вбудовані скрипти, стилі та зображення. |
string | LicensePath | "" | Повний шлях до файлу ліцензії. Порожньо → наступне джерело ліцензії, потім автоматичне виявлення; нічого не знайдено → водяний знак у оцінковій версії без функціоналу. |
string | LicenseContent | "" | Необроблений вміст ліцензії (база даних, змінна середовища, сховище секретів). Має пріоритет над LicensePath. |
Stream? | LicenseStream | null | Ліцензія у вигляді потоку, читається один раз під час запуску. Має пріоритет над обома іншими джерелами. |
string | MiddlewarePath | "/doconut" | Не використовується System.Web. Точка доступу сторінки завжди є обробником DocImage.axd, оголошеним у Web.config. Значення все ще перевіряється під час запуску (див. нижче). |
bool | ResetLicense | false | Не використовується. Ліцензію читають один раз у DoconutHost.Initialize; перезапустіть пул додатків після заміни ліцензії. |
DoconutPluginRegistry | PluginRegistry | — | Реєстр лише для читання внесків плагінів, заповнюваний AddPlugin<T>(). |
Пріоритет ліцензій: LicenseStream → LicenseContent → LicensePath → автоматичне виявлення (див. License Setup).
Методи
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Реєструє плагін (Converter, DICOM). Fluent — повертає екземпляр параметрів. Annotation та Search — вбудовані ліцензовані функції і не використовують його.
Якщо жодна активна ліцензія не надає можливість плагіну, DoconutHost.Initialize викидає InvalidOperationException з Application_Start, і сайт відповідає на кожен запит порожнім 500, доки це не виправлено; повідомлення знаходиться у журналі подій Windows (див. Plugin System).
Add…Widget()
DoconutOptions AddConverterWidget(Action<ConverterWidgetOptions>? configure = null)Вбудовані віджети вимкнені за замовчуванням. Кожен виклик Add…Widget() вмикає кінцеві точки цього віджета у DocImage.axd і вимагає, щоб відповідний плагін був зареєстрований. Модуль ресурсів подає скрипт віджета незалежно від того, чи ви його увімкнули, тому віджет, який завантажується і малює, але відповідає 404 під час першої дії, не має цього виклику. Віджет Converter задокументовано у Converter Plugin.
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — початкова крапка необов’язкова
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)Реєструє власний переглядач для розширення файлу. Власні переглядачі мають пріоритет над вбудованими та переглядачами плагінів і не залежать від ліцензії. Коли defaultConfig опущено і документ відкривається без явної конфігурації, використовується ImageConfig.
Викидає ArgumentException (Extension must be a non-empty file extension.) для порожнього розширення та ArgumentNullException для null‑фабрики.
Перевірка під час запуску
DoconutHost.Initialize перевіряє параметри перед створенням будь‑чого:
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 перевіряється, хоча System.Web його ніколи не використовує, тому залиште його за замовчуванням. Як і будь‑яке виключення, викинуте з Application_Start, помилка валідації відображається як порожній 500 на кожному запиті, а повідомлення записується у журнал подій Windows.
Загальні налаштування
// Production: явна ліцензія, все інше — у безпечному режимі за замовчуванням.
public static void ProductionLicense() =>
Doconut.DoconutHost.Initialize(options =>
{
options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
});
// Користувацький шлях ресурсу (наприклад, щоб уникнути конфлікту маршруту). Зберігайте ResPath переглядача та будь‑який MVC
// IgnoreRoute у відповідності з ним: "/docs-assets" означає ResPath: 'docs-assets/images'.
public static void CustomResourcePath() =>
Doconut.DoconutHost.Initialize(options =>
{
options.ResourcesPath = "/docs-assets";
});Коли ви змінюєте ResourcesPath, змініть одночасно три речі: параметр, ResPath віджета ('docs-assets/images' для "/docs-assets") і, у MVC, IgnoreRoute для шляху ресурсу (routes.IgnoreRoute("docs-assets/{*pathInfo}")). Кінцева точка DocImage.axd не переміщується: її шлях задається атрибутом path обробника у Web.config.
Чи була ця сторінка корисною?