プロジェクトの一環として、CorelDRAWでCOMオートメーションを使用しています。自動化は、最終的にWebサービスによって起動されるコンソールアプリケーションを介して行われますが、この問題の背後にある問題を解決する目的で、スケジュールされたタスクとして実行されます。これは私の開発マシン(32ビットWindows Server 2003を実行中)でも動作しますが、64ビットWindows Server 2003を実行しているマシンではCOMエラー80080005で失敗します。コンソールアプリケーション内のCOMオートメーションは、自分の開発マシンでは動作しますが、別のマシンでは動作しないのはなぜですか?
イベントビューアのログには何も追加情報はありません編集]をクリックします。
スケジュールされたタスクを実行してコンソールアプリケーションを実行するアカウントを使用してログインした場合、正常に動作するため、これは64ビットの問題で32ビットとは思えません(ただし、 )。
問題は、スケジュールされたタスクがCorelDRAWが要求/要求する方法で「ログイン」しないことが原因と考えられます。これが問題なら、なぜ私の開発マシンでは起こりませんか?これを可能にするために私の開発マシン上で変更した可能性のある設定がいくつかありますか?
同様の問題を研究している間、ここに、他の場所で、私を含む多くのこと試してみました:起動アカウントがサービスとしてログオンし、secpol.mscに設定されたバッチファイルとしてログオンしていることを確認する
を。
CorelDRAWオブジェクトに、ローカル起動とローカル起動がdcomcnfgで設定されていることを確認します。
マシンの管理者グループに起動ユーザーを追加し、オブジェクトアクセスに失敗したことを監査することにより、ファイルアクセス許可を確認します。
エラーを再現するために開発マシンの起動アカウントから権限を削除します(できません)。
他に何を試してください。
編集
した後、いくつかのより多くのイベントビューアのログに追加情報があるように思えるん掘ります。
オブジェクトServiceActiveのイベントID 560で監査エラーが発生しました。私はWindows Server 2003 SP1の修正を見つけることができますが、私は両方のマシンでSP2を実行しています。私はsc sdset ...
を使用することを示唆するhttp://social.msdn.microsoft.com/forums/en-US/windowstransactionsprogramming/thread/98683298-75da-4952-b2c1-057419c85501/を見つけました。
私はAdministratorsグループにスケジュールされたタスクを実行するアカウントを追加した場合、私はそれが見つけることを期待何かを見つけることができないことを示唆している
The application, c:\Program Files (x86)\Corel\CorelDRAW Graphics Suite X5\Programs\CorelDRW.exe, generated an application error The error occurred on 03/19/2012 @ 08:20:25.869 The exception generated was c0000005 at address 65F6378B (CrlUtl!CrlUtl::WDictionaryIterator<IBaseBind,ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t> > > >::GetNext)
を取得します。
0x8008005は、 "Server execution failed"を意味します。起動中にCOMサーバーがクラッシュしました。まともな診断が得られず、正しくインストールする方法がわからない場合は、ベンダーの助けが必要です。 –