2009-04-20 9 views
5

我々がしようとすると、我々はすでに受け取ったメッセージを転送した場合我々は、メールフォルダを処理するために、Exchange 2007のWSを使用していて、様々な問題をヒットしています。私たちのプロセスは:Exchange WS '指定されたオブジェクトがストアに見つかりませんでした。エラー

  • Windowsサービスはメールボックスのフォルダを監視し、情報を処理し、そのアイテムを「処理済みフォルダ」に移動してExchangeメッセージIDを格納します。
  • ユーザーが外部メールを転送することを選ぶことがあります。 Exchange APIを使用して、以前保存したメッセージIDを使用してアイテムを見つけてから、APIを再度使用して転送します。もう一度メールを見つけるのではなく、フレーク状証明された場合を除き

。定期的に次のエラーが表示されます。

The specified object was not found in the store.

これ以上の信頼性の高い方法はありますか? Exchange WSのドキュメントはかなり疎です。それは「加工」フォルダに移動さ​​れた後

答えて

3

あなたが新たに発見されたメッセージまたはメッセージのメッセージIDを保存していますか? IDは新しいフォルダに移動すると変更されます。

ブックInside Microsoft Exchange Server 2007 Web Servicesに推奨される方法は、「処理済み」フォルダに移動し、その後、新たに発見された項目のPR_SEARCH_KEY(0x300B、バイナリ)をつかむことです。その後、PR_SEARCH_KEYに基づいて、新しいフォルダにそれを検索し、それを転送する新しいメッセージIDです取得することができます。

1

受信トレイの添付ファイルの電子メールを指定されたフォルダに読み込み、電子メール情報と保存されたパスをデータベースに書き込み、最後に電子メールを削除するプログラムを作成しました。私はこのプログラムをWindowsサービスとして実行します。すべてのテストが終了したら、私はこのプログラムをメインサーバーに実行して実行します。プログラムは正常に実行されますが、時々このエラーが発生します。私はすべてをチェックし、私は自分のコンピュータでサービスを停止することを忘れていたことがわかった。私のコンピュータ上で実行される2つのプログラムと同じメールボックスを同時にチェックする実サーバ上。 このエラーが発生した場合は、同じメールボックスで処理できるプログラムが1つだけであることを確認してください。

2

私の結論は、私のアプリが電子メールを処理している間に、他の誰かが同時に電子メールで手を振っているためです。

問題を解決するために、コードをtry catchに入れて、例外がストア内に見つからないことを確認します。もしそうなら、私はそれをスキップして次の項目に移ります。だから問題はない。

関連する問題