【问题标题】:Exchange WS 'The specified object was not found in the store.' errorExchange WS '在商店中找不到指定的对象。错误
【发布时间】:2010-10-20 13:06:24
【问题描述】:

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

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

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

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

有没有更好/更可靠的方法可以实现相同的目标? Exchange WS 的文档比较少。

【问题讨论】:

    标签: c# exchange-server exchangewebservices


    【解决方案1】:

    我得出的结论是,这发生在我身上是因为当我的应用程序正在处理电子邮件时,其他人同时在摆弄电子邮件。

    所以为了解决这个问题,我将代码放在 try catch 中,看看异常是否 == 存储中找不到的那个对象,如果是,我就跳过它并继续下一个项目。所以 for 没有问题。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        这是 microsoft exchange manage API 中的错误。这是更多信息的链接 http://maheshde.blogspot.com/2010/09/exchange-web-service-specified-object.html

        【讨论】:

          【解决方案4】:

          您是保存新找到的消息的消息 ID 还是将消息移动到“已处理”文件夹后?移动到新文件夹时 id 会发生变化。

          Inside Microsoft Exchange Server 2007 Web Services 书中推荐的方法是抓取新发现的项目的 PR_SEARCH_KEY (0x300B, Binary),然后将其移动到“已处理”文件夹中。然后,您可以根据 PR_SEARCH_KEY 在新文件夹中搜索它并获取它的新 Message id 以转发它。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-04-15
            • 1970-01-01
            • 1970-01-01
            • 2012-03-08
            • 1970-01-01
            • 1970-01-01
            • 2019-08-21
            • 1970-01-01
            相关资源
            最近更新 更多