Установка

Add Doconut to your .NET 6 project

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

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

bash
dotnet add package Doconut.NET6

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

bash
dotnet add package Doconut.NET6 --version 26.7.0

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

Определите интеграцию перед обновлением

Идентификатор пакета Doconut.NET6 использовался как в классической, так и в текущей интеграции .NET 6. Не выбирайте документацию только по названию пакета:

  • DocImage.axd, new Viewer(_cache, _accessor, ...), синхронный OpenDocument(...) и вручную скопированные скрипты просмотрщика указывают на классическую интеграцию;
  • AddDoconut(), UseDoconutResources(), внедрённый Viewer и OpenDocumentAsync(...) указывают на текущую интеграцию, описанную здесь.

Переведённое руководство по классической настройке по‑прежнему доступно. Используйте руководство по миграции для перехода между поколениями; обычное обновление пакета не меняет автоматически стартовый код, жизненный цикл просмотрщика или ресурсы браузера.

Зарегистрировать 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.AddSession(); // Doconut document security rides on ASP.NET session state

app.UseSession();          // call UseSession() before UseDoconut()
app.UseDoconutResources(); // must be registered before UseDoconut()
app.UseDoconut();

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

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

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

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

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // coordinate with app mapping and client BasePath
    options.ResourcesPath   = "/doconut-res"; // where the viewer's JS/CSS/images are served from
    options.UnsafeMode      = false;          // keep session security on
    options.ShowDoconutInfo = false;
});

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

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