从Outlook接收联系人列表

时间:2015-01-16 04:30:44

标签: outlook

 Microsoft.Office.Interop.Outlook.Application outlookObj;
 outlookObj = new Microsoft.Office.Interop.Outlook.Application();

在程序开始时发出错误

{“由于以下错误,未成功接收具有CLSID {0006F03A-0000-0000-C000-000000000046}的组件的类COM的工厂:80080005附录服务器实施时出错(异常) HRESULT:0x80080005(CO_E_SERVER_EXEC_FAILURE))。“ }

错误在哪里?

2 个答案:

答案 0 :(得分:0)

CO_E_SERVER_EXEC_FAILURE通常表示您的代码和Outlook在不同的安全上下文中运行。是应用程序以提升的权限运行(以管理员身份运行)?您的应用是作为服务运行的吗?

答案 1 :(得分:0)

如果您在服务器端或从任何非交互式客户端运行代码:

Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行Office时,可能会出现不稳定的行为和/或死锁。

如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。

您可以在Considerations for server-side Automation of Office文章中详细了解相关内容。