2012-03-14 7 views
0

プロジェクトの一環として、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) 

を取得します。

+0

0x8008005は、 "Server execution failed"を意味します。起動中にCOMサーバーがクラッシュしました。まともな診断が得られず、正しくインストールする方法がわからない場合は、ベンダーの助けが必要です。 –

答えて

0

あなたはCOMサーバーを示唆CO_E_SERVER_EXEC_FAILUREなっている(あなたのケースでは、私はそれがローカルのDCOM CoralDrawサーバーだと仮定)の開始に失敗しました。

私の推測では、これは特権の問題です。私があなたを正しく理解していれば、これは開発マシン対製造マシンの問題ではなく、インタラクティブなログインとスケジュールされたタスクの問題です。

これは間違いありませんか?副次的な問題を解消するには、スケジュールされたタスクを実行するユーザーアカウントでCarolDrawを対話的に実行し、コマンドラインから起動したときにコンソールプログラムを実行するようにします。

Windowsをスケジュールしていますか? 「NT AUTHORITY \ INTERACTIVE」または「CONSOLE LOGON」グループメンバーシップが不足していると思われます。この仮定を確認するには、コマンドラインでグループメンバシップをダンプし、現在のトークン(GetTokenInformationはAPI)の特権をダンプし、スケジュールされたタスクとして実行するときとコマンドラインから取得するものを比較させます。

+0

主に対話型ログインとスケジュールされたタスクの問題です。スケジュールされたタスクがdevマシン上で動作するという事実は、それが動作するいくつかの状況があることを示しています。私はGetTokeInformationとNetUserGetLocalGroupsを使ってパーミッションをチェックしました。そうしている間、私は質問の編集として追加したイベントログにいくつかの情報を発見しました。 –

関連する問題