1

对于以下情况,我需要您的建议。

任务相当简单。我必须创建一个处理邮件(Exchange Server、阅读邮件)、处理文件(将附件保存到特定文件夹等)并将结果写入数据库(从邮件项创建文档或写入中间结果)的 Windows 服务。

该服务是很久以前创建的,现在运行良好。但是有一个大问题:它经常挂起。它挂在一些奇怪的地方,监视我们服务的同事(在我们客户端)必须手动重新启动它。此外,他们不会重新启动它。他们必须终止服务进程并从 SCM 重新启动它。

我所拥有的:用 C# 编写的 Windows 服务,可与 CDO 1.21 库一起使用。这个库肯定是不受管理的。我们使用这个库是因为我们必须使用 Exchange Server 处理 MAPI 协议。

问题是什么:正如我所写,主要问题是挂起。此外,我们必须完全使用 MAPI。不是 POP3,也不是 Exchange Web 服务,也不是任何其他协议。

我想要的是:稳定的 Windows 服务与 Exchange Server 一起工作。最好用 C# 编写。

那么你有什么建议呢?我没有找到任何可以使用 MAPI 的托管库,只有一些开源项目,但我没有尝试过。还有一些名为 CDO 的库,但它也是非托管的。可能我必须用 C++ 重写服务,但我对它不是很熟悉。我在这里找到了一个例子:http: //code.msdn.microsoft.com/windowsdesktop/CppWindowsService-cacf4948但我还必须使用文件和 SQL。这一切都准备好在 C# 中工作了。有任何想法吗?

4

1 回答 1

0

您知道哪些 CDO 呼叫挂起吗?请记住,CDO 1.21 已经 10 多年没有更新(至少在功能方面)。

没有与 MAPI 一起使用的托管库是有充分理由的——您确实需要 C++ 或 Delphi 才能使用它。有一个名为 MAPI33 的库,但我认为它不再被开发或出售。

你看过救赎吗?它的RDO 对象系列提供了 CDO 1.21 的所有功能以及更多功能。

于 2014-01-26T17:48:40.617 回答