【问题标题】:Access Denied OutLook DCOM访问被拒绝 OutLook DCOM
【发布时间】:2015-09-23 13:32:08
【问题描述】:

我正在尝试一个 ASP.NET 应用程序,但我遇到了 OutLook 问题。

后面的代码:

OutlookApplication = new Application();
NameSpace nameSpace = OutlookApplication.GetNamespace("MAPI");
nameSpace.Logon("", "", missing, missing);
nameSpace = null;

当我使用 Visual Studio 播放应用时,一切正常。

当我使用 IIS 播放应用程序时:

System.UnauthorizedAccessException:检索具有 CLSID {000209FF-0000-0000-C000-000000000046} 的 >component 的 COM 类工厂失败,原因是 >以下错误:80070005 访问被拒绝。 (来自 HRESULT 的异常:0x80070005 >(E_ACCESSDENIED))。

我已经尝试使用以下命令更改“OutLook 消息附件”的 DCOM 配置:

属性 -> 身份 -> 执行用户

Proprieties -> Security -> 为“每个人”授权的所有类型的访问权限。

注意:我对其他 Office 程序(Excel 和 Word)没有任何问题。

【问题讨论】:

  • 如果您正确地标记您的问题,您就更有可能接触到合适的受众,从而更有可能得到答案。这绝对不是asp-classic

标签: iis outlook asp-classic dcom


【解决方案1】:

我正在尝试一个 ASP.NET 应用程序,但我遇到了 OutLook 问题。

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

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

作为一种解决方法,您可以考虑使用 Outlook 所基于的低级 API(扩展 MAPI)或围绕该 API 的任何第三方包装器,例如 Redemption。

【讨论】:

  • 嗨,尤金,非常感谢您的回答。我会按照建议查看 Redemption API :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-10
  • 2021-03-06
  • 2011-05-15
  • 2010-09-06
  • 2014-03-22
  • 2013-08-10
  • 2018-04-20
相关资源
最近更新 更多