Office interop(サーバー側自動化)

定義

コードから Microsoft Office を操作して文書を開いたり変換したりします。デスクトップでは動作しますが、サーバー上では Microsoft および実際に試したすべての人から明確に推奨されていません。

Office はキーボードで操作する単一の対話的ユーザー向けに設計されました。多数のリクエストを処理するサーバーでは、その前提が特定の、よくある形で失敗します:プロセスが互いに待ち合うデッドロック、誰も閉じられないモーダル ダイアログ、そしてインスタンスがリクエストが終了しても残り続け、マシンのメモリが尽きるまで続きます。

ライセンスの立場も同様に厄介です。多数のユーザーに代わって文書をレンダリングするサーバーは、元々その用途を想定していないデスクトップ ライセンスが必要となり、調達チームとの話し合いはめったにうまくいきません。

代替手段はネイティブレンダリングです。フォーマットを直接解析し、プロセス内で出力を生成するライブラリです。別のアプリケーションは不要で、オートメーション層もなく、スケジュールで回収する孤立プロセスもありません。

Doconutで

Doconut はネイティブにレンダリングします。パイプラインのどこにも Office のインストールや COM オートメーション、インタープアセンブリは存在せず、これがコンテナ展開をシンプルにする要因でもあります。

実際の動作を見る

定義だけでは限界があります。テンポラリライセンスはご自身のマシンで、ご自身のドキュメントに対して実行されます。