检索CLSID为{0006F03A-000-0000-0000-000000000046}的组件的COM类工厂失败



我在.Net 4.5中创建了windows服务。该服务是为打开outlook客户端而编写的,阅读收件箱文件夹中的电子邮件,下载附件。写的代码是正确的,因为我已经跑了&在控制台应用程序项目中进行了测试。但是,当我使用"installutil"安装web服务并运行它时,该服务在以下代码行上抛出以下错误:

Outlook.Application myApp = new Outlook.Application();

错误:

正在检索CLSID为的组件的COM类工厂{0006F03A-000-0000-0000-000000000046}由于以下原因而失败错误:80010001调用被调用者拒绝。(HRESULT中的异常:0x80010001(RPC_E_CALL_REJECTED)正在检索的COM类工厂CLSID为{0006F03A-00000-0000-C000-000000000046}的组件由于导致以下错误:80010001呼叫被被叫方拒绝。(HRESULT出现异常:0x80010001(RPC_E_CALL_REJECTED))。

仅供参考,该服务没有在我的机器上运行,我觉得该服务可能需要一些权限,如果需要,请告诉我如何为windows服务分配权限。

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

如果您正在构建一个在服务器端上下文中运行的解决方案,则应该尝试使用那些可以安全执行无人参与的组件。或者,您应该尝试找到至少允许部分代码运行客户端的替代方案。如果使用服务器端解决方案中的Office应用程序,则该应用程序将缺乏成功运行所需的许多功能。此外,您将在整体解决方案的稳定性方面承担风险。请参阅"Office服务器端自动化的注意事项"一文中的更多内容。

请改用低级API-扩展MAPI。或该API周围的任何其他第三方包装器(例如,Redemption)。

相关内容

最新更新