Office interop (автоматизация на стороне сервера)
Определение
Управление Microsoft Office из кода для открытия или конвертации документов. Это работает на настольном компьютере, но явно не рекомендуется на сервере, как со стороны Microsoft, так и со стороны всех, кто пробовал это.
Office был создан для одного интерактивного пользователя за клавиатурой. На сервере, обрабатывающем одновременные запросы, это предположение рушится специфическими и знакомыми способами: процессы взаимно блокируются, ожидая друг друга, появляются модальные диалоговые окна, которые никто не может закрыть, и экземпляры живут дольше своих запросов, пока машина не исчерпает память.
Позиция по лицензированию также неудобна. Сервер, рендерящий документы от имени множества пользователей, требует настольные лицензии, которые изначально не предназначались для такого использования, а обсуждение этого с отделом закупок редко проходит гладко.
Альтернатива — нативный рендеринг: библиотека, которая напрямую парсит формат и генерирует вывод в процессе. Нет второго приложения, нет уровня автоматизации, нет осиротевших процессов, которые нужно собирать по расписанию.
В Doconut
Doconut рендерит нативно. Нет установки Office, нет COM‑автоматизации и нет сборки interop где-либо в конвейере — что также делает развертывание контейнеров простым.