Question

Nous utilisons Exchange 2007 WS pour traiter les dossiers de courrier et frappons divers problèmes si nous essayons et transmettre un message que nous avons déjà reçu. Notre processus est:

  • Service Windows surveille le dossier de boîte aux lettres, sur la recherche d'un nouveau message que nous traitons les informations et déplacer l'élément à un « dossier transformé » et stocker le message d'échange Id.
  • Les utilisateurs peuvent choisir de transmettre le courrier externe. Nous utilisons l'API Exchange pour trouver l'élément à l'aide du message Id que nous avons enregistrée précédemment, puis utilisez à nouveau l'API pour transmettre.

Sauf trouver le courrier à nouveau se révèle plutôt squameuse. Nous recevons régulièrement l'erreur suivante:

  

L'objet spécifié n'a pas été trouvé dans le magasin.

Y at-il une meilleure / plus fiable que nous pouvons obtenir le même? La documentation pour Exchange WS est plutôt clairsemée.

Était-ce utile?

La solution

Ceci est un bogue dans Microsoft Exchange gérer API. voici un lien pour plus d'informations http://maheshde.blogspot.com/2010/ 09 / exchange-web-service spécifié par object.html

Autres conseils

Vous enregistrez le message ID du message nouvellement trouvé ou le message une fois qu'il a été déplacé vers le dossier « transformés »? L'id change quand il se déplace dans un nouveau dossier.

La méthode recommandée dans le livre Inside Microsoft Exchange Server 2007 Web Services est de saisir le PR_SEARCH_KEY (0x300B, binaire) de l'élément nouvellement découverte, puis déplacez-le dans le dossier « transformés ». Vous pouvez ensuite rechercher dans le nouveau dossier basé sur la PR_SEARCH_KEY et obtenir son nouveau id message à transmettre.

Je suis venu à la conclusion que cela arrive à moi est parce que pendant que mon application est en train de traiter les e-mails, quelqu'un d'autre est tripotait un e-mail en même temps.

Donc, pour résoudre le problème, je l'ai mis le code dans une prise d'essai et voir si l'exception est == l'objet qui ne se trouve pas en magasin, si donc je saute juste et passer à l'élément suivant. Donc, pour n'a pas de problème.

J'ai écrit un programme qui lit les e-mails dans la boîte de réception des pièces jointes de téléchargements dans le dossier spécifié, écrit l'info e-mail et le chemin enregistré sur la base de données, et supprime enfin l'e-mail. Je lance ce programme en tant que service Windows. Après tous les tests sont finis, je lance ce programme sur le serveur principal et l'exécuter. Programme court mais parfois je avec succès obtenu cette erreur. J'ai vérifié tout et, enfin, je trouve que j'ai oublié d'arrêter le service sur mon ordinateur. 2 programmes qui fonctionne sur mon ordinateur et sur le serveur réel contrôle de la même boîte aux lettres en même temps. Si vous obtenez cette erreur assurez-vous qu'un seul programme peut traiter à la même boîte aux lettres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top