Server 2008 上の Windows サービス経由で Office を自動化する 質問する

Server 2008 上の Windows サービス経由で Office を自動化する 質問する

2003 Server で実行される Windows サービスがあります。このサービスは、Word Interop を使用してソース Word ドキュメントを開き、それに対していくつかの処理を行います。Excel ファイルや PowerPoint ファイルでも同様の処理を行います。

最近、このサービスを Windows 2008 Server マシンに移行しようとしましたが、実際に問題が発生しています。

Microsoft.Office.Interop.Excel.Workbooks.Open での COMException Microsoft.Office.Interop.Word.Documents.Open での COMException

Windows サービスが 2008 Server で実行されているときに、上記の例外が発生します。タスク マネージャーを見ると、アプリケーションは正常に読み込まれますが、その後すぐに再び閉じられます。

Vista と Server 2008 には Session0 がなくなったという記事を読み、それに応じて Office DCOM セキュリティ プロパティを変更しようとしました。これには、それらを実行しているユーザーの ID を統合に変更することも含まれますが、効果はありませんでした。

これが可能かどうか誰か知っていますか? これは私たちのシステムの基本的な側面なので、これを実行できるようにする必要があります。

ありがとう

ベストアンサー1

Windows Server 2003 では問題なく動作するのにもかかわらず、Windows Server 2008 では Windows サービスから Office を自動化する際に問題が発生しました。この問題は Open 呼び出しでも発生するため、同じ問題である可能性があります。

私はH Ogawaのアドバイスに従ってみましたこのMSDNスレッド、そしてそれはうまくいったようです。奇妙ですが、これを発見した小川さんに敬意を表します。

「Ogawa Hack」の概要: 次のように、システム プロファイルのデスクトップ フォルダーを作成します。

 C:\Windows\System32\config\systemprofile\Desktop

そして64ビットマシンで実行している場合は、別の1つは、次のとおりです。

 C:\Windows\SysWOW64\config\systemprofile\Desktop

また、Office を「操作」しているユーザーに対して、フォルダーへの書き込み権限が必要です。


[編集: リンク URL を修正しました]

[編集 2: 64 ビット Windows では、WOW64 フォルダーだけでなく、両方のフォルダーが必要であることを明確にしました]

おすすめ記事