【发布时间】:2017-04-26 08:53:04
【问题描述】:
错误消息:检索具有 CLSID {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败,原因是以下错误:80070005 访问被拒绝。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。
我已尝试更改所需的 DCOM 配置设置,但我仍然得到它,如果我调试我的代码,邮件就会被发送。
【问题讨论】:
错误消息:检索具有 CLSID {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败,原因是以下错误:80070005 访问被拒绝。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。
我已尝试更改所需的 DCOM 配置设置,但我仍然得到它,如果我调试我的代码,邮件就会被发送。
【问题讨论】:
Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定Office 在此环境中运行时的行为和/或死锁。
如果您要构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用服务器端解决方案中的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将承担整体解决方案稳定性的风险。在Considerations for server-side Automation of Office 文章中阅读更多相关信息。
作为一种解决方法,您可以考虑使用构建 Outlook 的低级 API - 扩展 MAPI。或者只是围绕该 API 的任何其他第三方包装器,例如 Redemption。
【讨论】: