2016-04-04 44 views
0

.NET 4.5.ServiceでWindowsサービスを作成しましたが、Outlookクライアントを開くために書かれています 受信トレイフォルダ私が&を実行して以来、書かれたコードは であり、コンソールアプリケーションプロジェクトでテストされています。 しかし、私は「ます。installutil」を使用してWebサービスをインストールし、それを実行すると、 サービスは、コードの行を次のように次のエラーがスローされます。CLSID {0006F03A-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリを取得できませんでした

Outlook.Application myApp = new Outlook.Application(); 

エラー:

Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80010001 Call was rejected by callee. (Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED))Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80010001 Call was rejected by callee. (Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED)).

FYI、サービスではありません私のマシン上で走っていると、私はサービスに何らかの許可が必要かもしれないと感じています。もしそうならWindowsサービスへのパーミッションの割り当て方法を教えてください。

+1

答えは、Outlookをサービスから実行することではなく、そのように使用されることは想定されていません。開始時には、MAPIプロファイルは、現在ログオンしているユーザーにバインドされます。サービスが実行されているアカウントではなく、MAPIを使用していても排他的であるため、ユーザーはデスクトップ上で自分のプロファイルにログオンできる。 –

+0

ここにコード: - Outlook.Application myApp = new Outlook.Application(); Outlook.NameSpace mapiNameSpace = myApp.GetNamespace( "MAPI"); ns = myApp.GetNamespace( "MAPI"); –

+0

エラー: - CLSID {0006F03A-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリを取得できませんでした。次のエラーが原因で失敗しました:80010001呼び出し先が呼び出しを拒否しました。 (HRESULTからの例外:0x80010001(RPC_E_CALL_REJECTED))CLSID {0006F03A-0000-0000-C000-000000000046} のコンポーネントのCOMクラスファクトリの取得に失敗しました:80010001呼び出し先によって呼び出しが拒否されました。 (HRESULTからの例外:0x80010001(RPC_E_CALL_REJECTED)) –

答えて

1

マイクロソフトでは、現在、Officeが、無人で非対話型のクライアントアプリケーションまたはコンポーネント(ASP、ASP.NET、DCOM、およびNTサービスを含む)からMicrosoft Officeアプリケーションの自動化を推奨しておらず、サポートしていません。この環境でOfficeを実行すると、不安定な動作やデッドロックが発生する。

サーバー側のコンテキストで実行されるソリューションを構築する場合は、無人で実行するために安全にされたコンポーネントを使用するようにしてください。または、コードの少なくとも一部がクライアント側で実行できるようにする代替手段を見つけようとする必要があります。サーバー側のソリューションからOfficeアプリケーションを使用する場合、アプリケーションには正常に実行するために必要な機能が不足しています。さらに、全体的なソリューションの安定性でリスクを冒すことになります。詳細については、Considerations for server-side Automation of Officeの記事をご覧ください。

代わりに低レベルのAPIを使用してください。 - 拡張MAPI。または、そのAPIに関する他のサードパーティのラッパー(たとえば、Redemption)。

関連する問題