24

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 を持っていないことについて読んだことがあります。それに応じて、それらを実行しているユーザーの ID を Integrated に変更するなど、Office DCOM のセキュリティ プロパティを変更しようとしましたが、役に立ちませんでした。

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

ありがとう

4

4 に答える 4

70

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

このMSDNスレッドでHOgawaのアドバイスに従ってみましたが、うまくいったようです。奇妙なことですが、小川さんが発見してくれたことに感謝します。

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

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

また、64ビットマシンで実行している場合は、次のように別のマシンを作成します。

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

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


[編集:修正されたリンクURL]

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

于 2009-11-05T12:22:10.097 に答える
2

「MMC -32」(コマンド プロンプト) を実行して 32 ビット MMC を起動し、コンポーネント サービスを追加する必要があります ([ファイル] > [スナップインの追加と削除] メニュー)。

次に、次のいずれかの指示に従います。

http://theether.net/download/Microsoft/kb/288366.html

于 2013-09-20T13:59:09.707 に答える
0

これは、UAC が有効になっている Vista でも発生します。DCOM ID を管理者アカウントに設定して、もう一度テストしてみてください。

また、最近、相互運用サービスを介して Excel でワークブックを開こうとしている XP ボックスでこの問題が発生し始めましたが、まだ回避策を見つけていません。私自身、コミュニティがそこに投げ出すことができるかもしれない他の洞察を望んでいます...

于 2009-06-17T13:20:36.730 に答える