您好我正在尝试通过C#控制台应用程序访问Outlook 2010中的电子邮件。
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();
第二行抛出错误信息:
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)).
你知道任何解决方案吗?
答案 0 :(得分:7)
这是因为进程的权限。请以管理员身份运行Visual studio和outlook。
简单的解决方案。以管理员身份运行或以普通权限级别运行。
此致 Rameez Ali
答案 1 :(得分:5)
尝试阅读以下内容:http://support.microsoft.com/kb/870655
原因:
如果许多COM +应用程序在不同的用户帐户下运行 在“此用户”属性中指定的,计算机不能 分配内存为新用户创建新的桌面堆。 因此,这个过程无法启动。替代方法: 要解决此问题,请修改该值 以下注册表子项: HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \控制\会话 管理器\子系统\视窗
答案 2 :(得分: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 =关闭MaxRequestThreads = 16
ASP.net用户必须在管理工具/计算机管理/用户
上激动对于32位(x86),创建此文件夹: C:\ WINDOWS \ system32 \设置\ systemprofile \桌面 - >添加网络服务
改变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加载项|取消选中项目。如果这样可以解决问题,则一次重新启用一个加载项,直到问题再次出现
为文件夹“C:\ WINDOWS \ TEMP”提供对IIS用户的读/写访问权限 所有Dll应放在C:\ Program Files \ Microsoft Visual Studio 9.0 \ Visual Studio Tools for Office \ PIA \ Office12