Office interop(服务器端自动化)
定义
通过代码驱动 Microsoft Office 打开或转换文档。它在桌面上可行,但 Microsoft 以及所有尝试过的人都明确不建议在服务器上使用。
Office 是为键盘前的单一交互用户而构建的。在处理并发请求的服务器上,这一假设会以特定且熟悉的方式失效:进程相互等待而死锁,模态对话框出现却无人能关闭,实例的生命周期超出请求,直至机器内存耗尽。
授权情况同样尴尬。为众多用户渲染文档的服务器需要桌面许可证,而这些许可证从未设计用于此类使用,这往往导致与采购团队的沟通不顺。
另一种方式是原生渲染:一个直接解析格式并在进程内生成输出的库。无需第二个应用程序、无需自动化层、也不存在需要定期清理的孤儿进程。
在 Doconut
Doconut 原生渲染。整个流水线中没有 Office 安装、没有 COM 自动化,也没有任何 interop 程序集——这也是容器部署变得直接的原因。