5

こんにちは私はC#コンソールアプリケーションを介してOutlook2010で自分の電子メールにアクセスしようとしています。

Visual Studioは管理者権限で起動しMicrosoft.Office.Interop.Outlook v14.0.0.0、Outlookへの参照を追加して使用しました。

私のコード:

Console.Write("starting");
Outlook.Application app = new Outlook.Application();
Outlook.NameSpace mapiNameSpace = app.GetNamespace("MAPI");
Outlook.MAPIFolder myInbox = mapiNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
Console.WriteLine(((Outlook.MailItem)myInbox.Items[0]).Subject);
Console.WriteLine("readline:");
Console.ReadLine();

2行目は、エラーメッセージをスローします。

Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).

解決策を知っていますか?

4

3 に答える 3

7

プロセスの権限によるものです。管理者としてVisualStudioとOutlookを実行してください。

シンプルなソリューション。両方を管理者として実行するか、両方を通常の特権レベルとして実行します。

よろしくラミーズアリ

于 2014-02-07T07:27:29.633 に答える
5

以下をお読みください:http ://support.microsoft.com/kb/870655

原因:
多くのCOM +アプリケーションがThisUserプロパティで指定された異なるユーザーアカウントで実行されている場合、コンピュータは新しいユーザー用の新しいデスクトップヒープを作成するためのメモリを割り当てることができません。したがって、プロセスを開始できません。

回避策:この問題を回避するには、次のレジストリサブキーの値を変更します:HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ SubSystems \ Windows

于 2013-02-11T13:15:48.260 に答える
0

次の手順が役立つ場合があります...

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ SubSystems-Windows

%SystemRoot%\ system32 \ csrss.exe ObjectDirectory = \ Windows SharedSection = 1024,3072,512 Windows = On SubSystemType = Windows ServerDll = basesrv、1 ServerDll = winsrv:UserServerDllInitialization、3 ServerDll = winsrv:ConServerDllInitialization、2 ProfileControl = Off MaxRequestThreads = 16

ASP.netユーザーは、管理ツール/コンピューター管理/ユーザーに存在する必要があります


32ビット(x86)の場合は、次のフォルダーを作成します。C:\ Windows \ System32 \ config \ systemprofile \Desktop->ネットワークサービスを追加

Windows \ Microsoft.NET \ Framework \ v2.0.50727 \TemporaryASP.NETファイルは書き込み権限を与えます。

Web.configでimpersonate=trueを変更し、

IIS for Windows Server 2003では、アカウントをネットワークサービスとして選択します。

DCOMCONFIGで、IDをインタラクティブユーザーとして変更します。

また、特定のディレクトリについては、すべての権限を付与します。


インターネットオプション-[詳細設定]タブ。一番下までスクロールして、[発行者の証明書の失効を確認する]という項目のチェックを外します。

レジストリ:CLSID:{0006F03A-0000-0000-C000-000000000046} HKEY_CLASSES_ROOT \ CLSID \のこのキーの下に、文字列値AppID = IDと同じ値を追加します。例:{0006F03A-0000-0000-C000-000000000046}

次に、HKEY_CLASSES_ROOT \AppID\の下に文字列値を追加します。RunAs=InteractiveUser

CLSIDとAPPID、権限、セキュリティを右クリックし、起動とアクセスの両方の権限を編集して、ネットワークサービスとインタラクティブの完全な権限を追加して付与します。


他のすべてのOutlookアドインを無効にします。[Outlookツール]メニュー| オプション| その他のタブ| 詳細オプション| COMアドイン| 項目のチェックを外します。これで問題が解決した場合は、問題が再発するまで、一度に1つのアドインを再度有効にします。


フォルダ「C:\ WINDOWS \ TEMP」のIISユーザーに読み取り/書き込みアクセスを許可するすべてのDLLは、C:\ Program Files \ Microsoft Visual Studio 9.0 \ Visual Studio Tools for Office \ PIA\Office12に配置する必要があります

于 2014-02-10T06:06:43.497 に答える