Exchange WS'在商店中找不到指定的对象。错误

时间:2009-04-20 10:49:13

标签: c# exchange-server exchangewebservices

我们正在使用Exchange 2007 WS来处理邮件文件夹,如果我们尝试转发我们已收到的邮件,则会遇到各种问题。我们的流程是:

  • Windows服务监视邮箱文件夹,在查找新邮件时我们处理信息并将项目移动到“已处理文件夹”并存储Exchange邮件ID。
  • 用户可以选择从外部转发邮件。我们使用Exchange API使用之前存储的Message Id查找项目,然后再次使用API​​转发。

除了再次发现邮件证明相当不稳定。我们经常收到以下错误:

  

在商店中找不到指定的对象。

我们可以实现相同的更好/更可靠的方式吗? Exchange WS的文档相当稀疏。

4 个答案:

答案 0 :(得分:3)

是否将新找到的邮件的邮件ID或邮件移动到“已处理”文件夹后保存?当它移动到新文件夹时,ID将会改变。

本书Inside Microsoft Exchange Server 2007 Web Services中建议的方法是获取新发现的项目的PR_SEARCH_KEY(0x300B,二进制),然后将其移至“已处理”文件夹。然后,您可以根据PR_SEARCH_KEY在新文件夹中搜索它,并获取它的新消息ID以转发它。

答案 1 :(得分:3)

这是微软Exchange管理API中的一个错误。这是一个链接以获取更多信息 http://maheshde.blogspot.com/2010/09/exchange-web-service-specified-object.html

答案 2 :(得分:2)

我得出结论,发生这种情况是因为我的应用正在处理电子邮件时,其他人同时正在摆弄电子邮件。

因此,为了解决这个问题,我把代码放在try catch中,看看异常是否= =在商店中找不到该对象,如果是,我只是跳过它继续下一个项目。所以没有问题。

答案 3 :(得分:1)

我编写了一个程序,用于读取收件箱中的电子邮件,下载附件到指定文件夹,写入电子邮件信息和保存的数据库路径,最后删除电子邮件。我将此程序作为Windows服务运行。完成所有测试后,我将此程序运行到主服务器并运行它。程序运行成功但有时我收到此错误。我检查了一切,最后我发现我忘了停止在我的电脑上维修。在我的计算机和真实服务器上运行的2个程序同时检查同一个邮箱。 如果出现此错误,请确保只有一个程序可以在同一个邮箱中处理。