标签:outlook com-interop c
在网上搜索失败后,这是我的问题.
我要安排一个任务,以从Outlook中检索电子邮件的附件并提取数据.
当我手动启动任务时,它工作正常,但是每当我尝试通过计划任务启动它时,都会失败并显示以下错误:
COMException (0x800401E3): Operation unavailable (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))
程序尝试按以下方式检索或创建Outlook实例时会发生这种情况:
private Application GetApplicationObject()
{
Application application = null;
if (Process.GetProcessesByName("OUTLOOK").Any())
{
application = Marshal.GetActiveObject("Outlook.Application") as Application;
}
else
{
application = new Application();
}
return application;
}
我尝试了几种方法(批处理文件,.exe文件,程序中的参数),但它们均失败了.
它是使用与手动启动任务相同的帐户启动的.
有人能帮我吗 ?任何帮助,将不胜感激!
干杯!
解决方法:
Microsoft当前不建议也不支持任何无人参与的非交互客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT Services)中的Microsoft Office应用程序自动化,因为Office可能表现出不稳定的行为和/在此环境中运行Office时出现死锁或死锁.
如果要构建在服务器端上下文中运行的解决方案,则应尝试使用对无人值守执行安全的组件.或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法.如果您从服务器端解决方案中使用Office应用程序,则该应用程序将缺少许多成功运行所需的功能.此外,您将承担整体解决方案稳定性的风险.在Considerations for server-side Automation of Office文章中了解有关此内容的更多信息.
您可能会考虑使用低级API(或任何其他第三方包装程序)-Outlook所基于的扩展MAPI.如果是Exchange配置文件,则为EWS,有关更多信息,请参见EWS Managed API, EWS, and web services in Exchange.
标签:outlook,com-interop,c 来源: https://codeday.me/bug/20191119/2036502.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。