我正在尝试使用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}的>组件的COM类工厂失败:80070005拒绝访问。 (HRESULT异常:0x80070005>(E_ACCESSDENIED))。
我已尝试使用以下命令更改“OutLook Message Attachment”的DCOM配置:
礼仪 - >身份 - >执行用户
礼仪 - >安全 - >所有类型的访问都为“每个人”自动化。
注意:我对其他Office程序(Excel和Word)没有任何问题。
答案 0 :(得分:0)
我正在尝试使用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。