5

您好,我正在尝试通过 C# 控制台应用程序在 Outlook 2010 中访问我的电子邮件。

Visual Studio 以管理员权限启动,我添加了对 Outlook 的引用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();

第二行,抛出错误消息:

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

这是因为进程的特权。请以管理员身份运行 Visual Studio 和 Outlook。

简单的解决方案。以管理员身份运行两者或以正常权限级别运行两者。

问候拉米兹阿里

于 2014-02-07T07:27:29.633 回答
5

尝试阅读以下内容:http: //support.microsoft.com/kb/870655

原因:
如果许多 COM+ 应用程序在此用户属性中指定的不同用户帐户下运行,则计算机无法分配内存来为新用户创建新的桌面堆。因此,该过程无法启动。

变通方法:要变通解决此问题,请修改以下注册表子项的值: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\Temporary ASP.NET Files 提供写入权限。

在 Web.config 中更改 impersonate=true,

在 IIS for windows server 2003 中选择帐户作为 NETWORK SERVICE。

在 DCOMCONFIG 中将身份更改为交互式用户。

还为特定目录赋予所有权利。


Internet 选项 - 高级选项卡。一直滚动到底部并取消选中名为“检查发布者的证书吊销”的项目。

注册表:CLSID:{0006F03A-0000-0000-C000-000000000046} 在 HKEY_CLASSES_ROOT\CLSID\ 的这个键下,添加一个字符串值 AppID = 与 ID 相同的值 例如:{0006F03A-0000-0000-C000-000000000046}

然后在 HKEY_CLASSES_ROOT\AppID\ 下添加一个字符串值: RunAs = Interactive User

右键单击 CLSID 和 APPID、权限、安全性,然后编辑启动和访问权限以添加和授予网络服务和交互完全权限。


禁用所有其他 Outlook 加载项: Outlook 工具菜单 | 选项 | 其他标签 | 高级选项 | COM 加载项 | 取消选中项目。如果这解决了问题,则一次重新启用一个加载项,直到问题再次出现


授予 IIS 用户对文件夹“C:\WINDOWS\TEMP”的读/写访问权限所有 Dll 应放在 C:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office12

于 2014-02-10T06:06:43.497 回答