2009-04-20 5 views
5

Мы используем Exchange 2007 WS для обработки почтовых папок и сталкиваемся с различными проблемами, если попытаемся отправить сообщение, которое мы уже получили. Наш процесс:Exchange WS 'Указанный объект не найден в хранилище.' error

  • Служба Windows отслеживает папку почтового ящика, при поиске нового письма мы обрабатываем эту информацию и перемещаем элемент в «Обработанную папку» и сохраняем идентификатор сообщения Exchange.
  • Пользователи могут перенаправить почту извне. Мы используем API Exchange для поиска элемента с помощью идентификатора сообщения, который мы сохранили ранее, а затем снова используем API для пересылки.

Кроме того, обнаружение почты снова является довольно хрупким. Мы регулярно получаем следующую ошибку:

The specified object was not found in the store.

Есть ли лучший/более надежный способ добиться того же? Документация для Exchange WS довольно скудная.

ответ

3

Сохранение идентификатора сообщения только что найденного сообщения или сообщения после его перемещения в папку «Обработанная»? Идентификатор изменится, когда он переместится в новую папку.

Метод, рекомендованный в книге Inside Microsoft Exchange Server 2007 Web Services, заключается в том, чтобы захватить PR_SEARCH_KEY (0x300B, Binary) вновь обнаруженного элемента, а затем переместить его в папку «Обработанная». Затем вы можете найти его в новой папке на основе PR_SEARCH_KEY и получить новый идентификатор сообщения для пересылки.

1

Я написал программу, которая читает электронные письма в папке «Входящие», загружает вложения в указанную папку, пишет информацию электронной почты и сохраненный путь к базе данных и, наконец, удаляет письмо. Я запускаю эту программу как службу Windows. После завершения всех тестов я запускаю эту программу на главный сервер и запускаю ее. Программа работает успешно, но иногда я получаю эту ошибку. Я проверил все, и, наконец, я обнаружил, что забыл прекратить обслуживание на своем компьютере. 2 программы, которые работают на моем компьютере и на реальном сервере, проверяя один и тот же почтовый ящик одновременно. Если вы получите эту ошибку, убедитесь, что только одна программа может обрабатывать один и тот же почтовый ящик.

2

Я пришел к выводу, что это происходит со мной, потому что, хотя мое приложение обрабатывает электронные письма, кто-то еще занимается электронной почтой в одно и то же время.

Поэтому, чтобы устранить проблему, я поставил ее в попытке поймать и посмотрел, является ли исключение == тот объект, который не найден в магазине, поэтому я просто пропустил его и перешел к следующему элементу. Так что для вопросов нет.

Смежные вопросы