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 フォルダーだけでなく、両方のフォルダーが必要であることを明確にしました]