マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

サポート

Office サーバー サイド オートメーションの危険性について
http://blogs.msdn.com/b/office_client_development_support_blog/archive/2012/04/12/1-office.aspx

技術的背景

サーバー サイド オートメーションとは、正確には、

「非対話型のセッション、ウィンドウ・ステーション、デスクトップで
起動されたアプリケーションからのOfficeオートメーション」

であり

など、サーバーサイドのコードから
Officeオートメーションを起動する事を言う。

サポートされない理由

簡潔に言ってOfficeが
非対話型のセッション、ウィンドウステーション、デスクトップ上
で実行される事を想定して設計実装されていないため。

Office のサーバーサイド オートメーションについて
http://support.microsoft.com/kb/257757/ja

現在のすべてのバージョンの Microsoft Office は、
クライアント ワークステーション上でエンドユーザー製品
として実行するように設計、テスト、および構成されています。

これらの製品では、

を想定しています。

無人実行されるように設計されたサーバーサイド コンポーネントの必要性
を満たすのに必要なレベルの再入可能性やセキュリティは提供されません。

非対話型に該当する状態

このためサーバ上での実装に限定されず、通常のクライアント環境で
対話型ウィンドウ・ステーション以外の非対話型ウィンドウ・ステーション
からOfficeオートメーションが起されるような実装を行ったとしても、
この処理はサポートされない。

例:タスク スケジューラによって SYSTEM アカウントの下で 実行されるコードから実行されるOfficeオートメーション

発生し得る問題

以下、詳細

ユーザー プロファイル

多くのサービスは、ユーザー プロファイルがないアカウント
(SYSTEM アカウント、IWAM_[servername] アカウントなど)で実行されます。
そのため、起動時に Office が適切な初期化に失敗する場合があります。

参考情報

デスクトップでの対話的処理

何らかのオートメーション機能を適切に実行するために、
アプリケーションには表示が必要になることがあります。

ユーザーに操作内容を確認する
「モーダル ダイアログ ボックス」
が表示されるように設計されています。

非対話型デスクトップでのモーダル ダイアログ ボックスは閉じることができません。
これが原因となり、そのスレッドが応答しない (ハング) ままになります。

参考情報

再入可能性とスケーラビリティ

Office アプリケーションは、リソースを多用する各種機能を
単一のクライアントに提供するように設計された、
再入不可能な、STA ベースのオートメーション サーバーです。
(STA:生成したスレッドのみが使用できるタイプのCOM)

このため、マルチクライアント環境下で利用する場合は競合が発生する可能性があるため
Office アプリケーションへのアクセスの "プール" またはシリアル化を検討して、
デッドロックまたはデータ破損の可能性を回避する必要がある。

障害許容力と安定性

エンドユーザー製品としての Office の障害許容力を高める
Microsoft Windows インストーラ (MSI) テクノロジによる自己修復機能が

等の理由から安定性を損なう。

サーバーサイドのセキュリティ

採用され易い理由

以下の理由で採用され易い方式となっています。

代替策

Office サーバー サイド オートメーションの殆どのケースが
Office ドキュメントの作成と編集(または印刷)であると言う。


Tags: :アカウント, :障害対応, :デバッグ


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS