0x80080005 展望2013

0x80080005 In outlook 2013

我正在尝试使用 VS2013 和 c# 构建一个简单的 outlook 插件 在 outlook 2010 中工作正常,但在 outlook 2013 中崩溃,并在这一行出现此错误:

Outlook.application o = new Outlook.Application();

为 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的组件检索 COM class 工厂失败,原因如下:80080005 服务器执行失败(HRESULT 异常:0x80080005(CO_E_SERVER_EXEC_FAILURE))

VS和outlook在同一用户下运行,OS是windows7,完整性级别相同。

谢谢, 马吕斯

以下语句:

I'm trying to build a simple outlook plugin

Outlook.application o = new Outlook.Application();

不兼容!

您需要使用加载项中可用的 Application 属性。如果您开发基于 VSTO 的加载项,请查看加载项 class.

的应用程序 属性

无论如何,以下错误说明指出您尝试从 windows 服务自动化 Outlook:

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))

Microsoft 目前不推荐也不支持来自任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT)的 Microsoft Office 应用程序自动化服务),因为当 Office 在此环境中 运行 时,Office 可能表现出不稳定的行为 and/or 死锁。

如果您正在构建 运行 在服务器端上下文中的解决方案,您应该尝试使用已针对无人值守执行安全设置的组件。或者,您应该尝试找到至少允许 运行 客户端部分代码的替代方案。如果您从服务器端解决方案使用 Office 应用程序,该应用程序将缺少许多 运行 成功所必需的功能。此外,您将承担整体解决方案稳定性的风险。在 Considerations for server-side Automation of Office 文章中阅读更多相关信息。

您可以考虑使用来自服务的低级代码 - 扩展 MAPI 或围绕该 API 的任何第三方包装器。