C#Microsoft.Office.Interop.Outlook从Windows服务启动

时间:2017-07-27 06:18:32

标签: c# outlook windows-services

我使用Microsoft.Office.Interop.Outlook执行以下操作: -

  1. 阅读名为'待定'
  2. 的Outlook文件夹
  3. 从'待定'下的所有电子邮件中获取附件夹
  4. 将附件保存到硬盘文件夹
  5. 从保存的文件中读取附件并上传到我们的数据库
  6. 如果我手动运行我的C#控制台应用程序,以上所有要点都可以正常工作。 当我从Windows服务启动控制台应用程序时,它也会工作。但有时候没有。 我在Stack中的某处读到Microsoft.Office.Interop.Outlook不是为Windows Services设计的。

    从Windows服务到上述所有任务的最佳方法(快速和快速开发)是什么?

1 个答案:

答案 0 :(得分:3)

  

对于上述所有任务来自Windows服务的最佳方法(快速和快速开发)是什么?

简短回答 - 你做不到。

COM自动化服务器(例如Microsoft Office中的服务器)是基于GUI的,因此需要消息泵。如果您认为Windows服务通常之前运行登录用户,则无法启动尝试显示GUI的进程。它只会锁定。

有人可能会争辩说,你可以一直等到用户登录到Windows,但这有点会破坏Windows服务的目的 - 用户登录不是必需的。此外,如果Windows重新启动,您的应用程序将无法运行,直到用户再次登录。