Установка

Добавьте Doconut в ваш проект .NET 8

Базовый просмотрщик Doconut для .NET 8 поставляется в виде одного пакета NuGet, который подключается к любому приложению ASP.NET Core. Дополнительные плагины используют отдельные пакеты. Эта страница устанавливает базовый пакет и регистрирует middleware — минимум, необходимый перед первым рендерингом.

Установите пакет

bash
dotnet add package Doconut.NET8

Команда без указания версии устанавливает последнюю стабильную версию. Чтобы точно воспроизвести текущий релиз 26.7.0, укажите версию как отдельный параметр:

bash
dotnet add package Doconut.NET8 --version 26.7.0

Doconut.NET8 — это идентификатор пакета. Суффикс .26.7.0 относится к загруженному файлу Doconut.NET8.26.7.0.nupkg и не является частью идентификатора.

Зарегистрируйте Doconut

AddDoconut() — единственная точка входа для регистрации; существует единственная перегрузка, и она подключает сервис Viewer, сервис лицензий и инфраструктуру рендеринга в контейнер DI.

Два вызова middleware завершают настройку, и их порядок имеет значение: UseDoconutResources() должен выполняться до UseDoconut(). UseDoconut() является конечным middleware, поэтому вызов его первым приводит к тому, что каждый запрос к ресурсу /doconut-res никогда не достигает обработчика ресурсов и получает 404. Подключение сессии также требуется — стандартная безопасность документов Doconut проверяет каждый запрос страницы против состояния сессии ASP.NET.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // состояние сессии требует кэш (MVC/Razor Pages уже добавляют один)
builder.Services.AddSession(); // безопасность документов Doconut использует состояние сессии ASP.NET

app.UseSession();          // вызовите UseSession() перед UseDoconut()
app.UseDoconutResources(); // должно быть зарегистрировано до UseDoconut()
app.UseDoconut();

Все параметры

DoconutOptions принимает следующие настраиваемые свойства. Каждое из них является необязательным — ниже указаны значения по умолчанию, которые применяются, если свойство не задано.

СвойствоПо умолчаниюОписание
ShowDoconutInfofalseКогда true, запрос без token возвращает баннер версии вместо 404. Полезно для быстрой проверки; отключайте в продакшене.
UnsafeModefalseКогда true, пропускает проверку безопасности ASP.NET‑сессии при запросах страниц. Отключайте в продакшене.
MiddlewarePath"/doconut"Координационное значение для конечной точки page-image. Оно проверяется, но само по себе не монтирует ветку; держите его согласованным с реальным сопоставлением UseDoconut() и клиентским BasePath.
ResourcesPath"/doconut-res"Откуда обслуживаются встроенные ресурсы JS/CSS/изображения.
LicensePath"" (empty string)Путь к файлу лицензии. Пустая строка означает переход к следующему источнику, затем авто‑поиск.
LicenseContent"" (empty string)Сырой контент лицензии — из переменной окружения, менеджера секретов или базы данных.
LicenseStreamnullЛицензия как поток, читается один раз при запуске.
ResetLicensefalseЗарезервированный флаг совместимости. Текущие сервисы .NET 8 читают лицензию во время AddDoconut(); перезапустите приложение после замены лицензии.

Приоритет лицензий, когда задано более одного источника: LicenseStream превалирует над LicenseContent, который превалирует над LicensePath, который превалирует над авто‑поиском — см. License Setup.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // согласуйте с сопоставлением приложения и BasePath клиента
    options.ResourcesPath   = "/doconut-res"; // откуда обслуживаются JS/CSS/изображения просмотрщика
    options.UnsafeMode      = false;          // сохраняйте безопасность сессии включенной
    options.ShowDoconutInfo = false;
});

Следующие шаги

Была ли эта страница полезной?