Office interop(服务器端自动化)

定义

通过代码驱动 Microsoft Office 打开或转换文档。它在桌面上可行,但 Microsoft 以及所有尝试过的人都明确不建议在服务器上使用。

Office 是为键盘前的单一交互用户而构建的。在处理并发请求的服务器上,这一假设会以特定且熟悉的方式失效:进程相互等待而死锁,模态对话框出现却无人能关闭,实例的生命周期超出请求,直至机器内存耗尽。

授权情况同样尴尬。为众多用户渲染文档的服务器需要桌面许可证,而这些许可证从未设计用于此类使用,这往往导致与采购团队的沟通不顺。

另一种方式是原生渲染:一个直接解析格式并在进程内生成输出的库。无需第二个应用程序、无需自动化层、也不存在需要定期清理的孤儿进程。

在 Doconut

Doconut 原生渲染。整个流水线中没有 Office 安装、没有 COM 自动化,也没有任何 interop 程序集——这也是容器部署变得直接的原因。

了解实际运行方式

仅靠定义只能帮助你到此为止。临时许可证可在你自己的机器上运行,针对你自己的文档。